PDFium Component Docs

ObjectBounds Propiedad

Componente: TPdf  ·  Unidad: PDFium
Rectángulo delimitador alineado con los ejes y ajustado de un único objeto de página en la página actual, expresado en coordenadas del espacio de usuario PDF tras aplicar cada CTM y la matriz por objeto

Syntax

property ObjectBounds[Index: Integer]: TPdfRectangle; // read only

Description

El flujo de contenido PDF de una página es una secuencia de objetos de página: tiradas de texto, trazados vectoriales, imágenes ráster, patrones de sombreado y XObjects de formulario incrustados (PDF 32000-1 § 8.2). ObjectBounds devuelve el cuadro delimitador del objeto número Index en la página actual tras aplanar PDFium la pila CTM y la propia matriz cm del objeto, de modo que el rectángulo es directamente utilizable para hit testing, construcción de máscaras o recortes de miniaturas sin más cálculos.

El rectángulo usa la convención de coordenadas PDF habitual — origen en la esquina inferior izquierda de la página, unidades de 1/72 pulgadas, Y creciendo hacia arriba — de modo que Bottom < Top en un documento bien formado. Envuelve FPDFPageObj_GetBounds de PDFium; la llamada es O(1) por sí sola, pero itera internamente cada vértice del contorno para los trazados, por lo que conviene guardar en caché el resultado si lo lee muchas veces por objeto.

El rango válido es 0 .. ObjectCount - 1 para la página seleccionada actualmente por PageNumber. Acceder a un índice fuera de rango devuelve un rectángulo cero. Combine esta propiedad con ObjectType para distribuir según el tipo de objeto antes de leer propiedades adicionales específicas del tipo.

Parameters

IndexÍndice de objeto de página basado en cero, 0 ≤ Index < ObjectCount.

Remarks

Example

// Highlight every image object on the current page.
var I: Integer;
var R: TPdfRectangle;
begin
  for I := 0 to Pdf1.ObjectCount - 1 do
  if Pdf1.ObjectType[I] = otImage then
  begin
    R := Pdf1.ObjectBounds[I];
    Memo1.Lines.Add(Format('image %d: %.1f,%.1f - %.1f,%.1f (%.1fx%.1f pt)',
      [I, R.Left, R.Bottom, R.Right, R.Top,
       R.Right - R.Left, R.Top - R.Bottom]));
  end;
end;

See Also

ObjectCount, ObjectType, ObjectHandle, ObjectTransparent, PageNumber