PDFium Component Docs

ObjectBounds Właściwość

Component: TPdf  ·  Unit: PDFium
Ściśle dopasowany prostokąt ograniczający wyrównany do osi dla pojedynczego obiektu strony na bieżącej stronie, wyrażony we współrzędnych PDF user-space po zastosowaniu całego stosu CTM i macierzy danego obiektu

Syntax

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

Description

Strumień treści PDF strony jest sekwencją obiektów strony: przebiegów tekstowych, ścieżek wektorowych, obrazów rastrowych, wzorców cieniowania i osadzonych form XObjects (PDF 32000-1 § 8.2). ObjectBounds zwraca prostokąt otaczający obiektu o numerze Index na bieżącej stronie po spłaszczeniu przez PDFium stosu CTM i własnej macierzy cm obiektu, więc prostokąt nadaje się bezpośrednio do testowania trafień, budowania masek lub kadrowania miniatur bez dodatkowych obliczeń

Prostokąt używa standardowej konwencji współrzędnych PDF — początek układu w lewym dolnym rogu strony, jednostki 1/72 cala, oś Y rosnąca w górę — więc Bottom < Top w poprawnie utworzonym dokumencie. Opakowuje FPDFPageObj_GetBounds z PDFium; samo wywołanie ma złożoność O(1), ale wewnętrznie iteruje po każdym wierzchołku konturu dla ścieżek, więc zapisanie wyniku do pamięci podręcznej jest rozsądne, gdy odczytujesz go wielokrotnie dla jednego obiektu

Prawidłowy zakres to 0 .. ObjectCount - 1 dla strony aktualnie wybranej przez PageNumber. Dostęp do indeksu spoza zakresu zwraca zerowy prostokąt. Połącz tę właściwość z ObjectType, aby rozdzielić obsługę według rodzaju obiektu przed odczytem dodatkowych właściwości dla danego typu

Parameters

IndexIndeks obiektu strony liczony od zera, 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