PDFium Delphi Component Docs

ObjectBounds Propriété

Composant: TPdf  ·  Unit: PDFium
Rectangle englobant serré, aligné sur les axes, d'un objet de page unique sur la page courante, exprimé en coordonnées PDF user-space après application de chaque CTM et de la matrice propre à l'objet

Syntax

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

Description

Le flux de contenu PDF d'une page est une séquence d'objets de page : segments de texte, chemins vectoriels, images matricielles, motifs de dégradé et XObjects de formulaire incorporés (PDF 32000-1 § 8.2). ObjectBounds renvoie la boîte englobante de l'objet numéro Index sur la page courante après que PDFium a aplati la pile CTM et la matrice cm propre à l'objet, si bien que le rectangle est directement exploitable pour le hit testing, la construction de masques ou le recadrage de miniatures sans autre calcul

Le rectangle utilise la convention de coordonnées PDF standard — origine au coin inférieur gauche de la page, unités de 1/72 inch, Y croissant vers le haut — donc Bottom < Top dans un document bien formé. Enveloppe FPDFPageObj_GetBounds de PDFium ; l'appel est en O(1) en lui-même mais parcourt en interne chaque sommet de contour pour les chemins, donc mettre le résultat en cache est judicieux si vous le lisez plusieurs fois par objet

La plage valide est 0 .. ObjectCount - 1 pour la page actuellement sélectionnée par PageNumber. L'accès à un index hors plage renvoie un rectangle nul. Associez cette propriété à ObjectType pour dispatcher selon le type d'objet avant de lire les propriétés supplémentaires spécifiques au type

Parameters

IndexIndex d’objet de page de base 0, 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