property ObjectBounds[Index: Integer]: TPdfRectangle; // read only
Il content stream PDF di una pagina è una sequenza di oggetti di pagina: run di testo,
path vettoriali, immagini raster, pattern di shading e form XObjects incorporati (PDF 32000-1
§ 8.2). ObjectBounds restituisce il riquadro di delimitazione dell'oggetto numero
Index sulla pagina corrente dopo che PDFium ha appiattito lo stack della CTM e la
matrice cm propria dell'oggetto, così il rettangolo è direttamente utilizzabile per hit testing,
costruzione di mask o ritagli di miniature senza ulteriori calcoli
Il rettangolo usa la convenzione di coordinate PDF standard — origine nell'angolo
in basso a sinistra della pagina, unità di 1/72 di pollice, Y crescente verso l'alto — quindi Bottom < Top
in un documento ben formato. Incapsula FPDFPageObj_GetBounds di PDFium; la chiamata è
O(1) in sé ma itera internamente ogni vertice del contorno per i path, quindi fare cache del
risultato è saggio se lo leggi molte volte per oggetto
L'intervallo valido è 0 .. ObjectCount - 1 per la pagina attualmente selezionata da
PageNumber. Accedere a un indice fuori intervallo restituisce
un rettangolo zero. Abbina questa proprietà a ObjectType
per fare dispatch sul tipo di oggetto prima di leggere le ulteriori proprietà per tipo
| Index | Indice dell'oggetto di pagina a base zero, 0 ≤ Index < ObjectCount |
// 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;