PDFium Delphi Component Docs

ObjectBounds Proprietà

Componente: TPdf  ·  Unità: PDFium
Rettangolo di delimitazione stretto e allineato agli assi di un singolo oggetto di pagina sulla pagina corrente, espresso nelle coordinate user-space PDF dopo l'applicazione di ogni CTM e della matrice del singolo oggetto

Syntax

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

Description

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

Parameters

IndexIndice dell'oggetto di pagina a base zero, 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