property ObjectBounds[Index: Integer]: TPdfRectangle; // read only
De PDF content stream van een pagina is een reeks page objects: tekstruns,
vectorpaden, rasterafbeeldingen, shading patterns en ingebedde form XObjects (PDF 32000-1
§ 8.2). ObjectBounds geeft de bounding box van objectnummer
Index op de huidige pagina terug nadat PDFium de CTM-stack en de
eigen cm-matrix van het object heeft afgevlakt, zodat de rechthoek direct bruikbaar is voor hit-testing,
maskers of thumbnail-crops zonder extra rekenwerk
De rechthoek volgt de standaard PDF-coördinaatconventie — oorsprong in de linkerbenedenhoek
van de pagina, eenheid 1/72 inch, Y omhoog groeiend — zodat Bottom < Top
in een goed gevormd document. Het omwikkelt FPDFPageObj_GetBounds van PDFium; de aanroep is
op zich O(1) maar itereert intern over elke contourvertex bij paden, dus het resultaat cachen
is verstandig als u het vaak per object leest
Het geldige bereik is 0 .. ObjectCount - 1 voor de pagina die momenteel via
PageNumber is geselecteerd. Een index buiten bereik levert
een nulrechthoek op. Gebruik deze eigenschap samen met ObjectType
om op objectsoort te dispatchen voordat u aanvullende typespecifieke eigenschappen leest
| Index | Zero-based paginaobjectindex, 0 ≤ Index < ObjectCount |
// Markeer elk afbeeldingsobject op de huidige pagina
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;