PDFium Delphi Component Docs

ObjectBounds Свойство

Компонент: TPdf  ·  Модуль: PDFium
Плотный выровненный по осям bounding rectangle одного page object на текущей странице, выраженный в координатах пользовательского пространства PDF после применения каждой CTM и матрицы самого объекта

Syntax

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

Description

Content stream страницы — это последовательность объектов страницы: текстовые прогоны, векторные пути, растровые изображения, паттерны шейдинга и встроенные form XObjects (PDF 32000-1 § 8.2). ObjectBounds возвращает габаритный бокс объекта с номером Index на текущей странице после того, как PDFium развернул стек CTM и собственную матрицу cm объекта, поэтому прямоугольник сразу пригоден для hit testing, построения масок или кадрирования миниатюр без дополнительных вычислений

Прямоугольник следует стандартной конвенции координат PDF — начало в левом нижнем углу страницы, единицы 1/72 дюйма, Y растёт вверх — так что в корректном документе Bottom < Top. Это обёртка над FPDFPageObj_GetBounds из PDFium; сам вызов O(1), но внутри для путей итерируются все вершины контуров, поэтому при многократном чтении на объект результат стоит закэшировать

Допустимый диапазон — 0 .. ObjectCount - 1 для страницы, выбранной в PageNumber. Обращение к индексу вне диапазона возвращает нулевой прямоугольник. Сочетайте это свойство с ObjectType, чтобы ветвиться по типу объекта до чтения дополнительных свойств конкретного типа

Parameters

IndexИндекс объекта страницы с нуля, 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