property ObjectType[Index: Integer]: TObjectType; // read only
| Index | Индекс page object с нуля, в диапазоне от 0 до ObjectCount - 1 |
ObjectType возвращает значение перечисления TObjectType, описывающее
вид page object в Index:
otText — text-showing operator (Tj, TJ, ', ") — run glyphs, sharing a font and text matrixotPath — vector path: lines, curves, rectangles and fills. Используйте ObjectBounds, чтобы получить rectangle на страницеotImage — raster image. Сочетайте с ObjectBitmap, чтобы получить pixelsotShading — gradient или shading pattern на основе функции (PDF axial/radial/coon shading)otForm — form XObject: reusable sub-stream, который сам может содержать text, paths и imagesКлассификация стабильна и недорога; вызов в tight loop по
ObjectCount — стандартный способ рассортировать
content страницы перед выбором более дорогого accessor (ObjectBitmap,
ObjectBounds, свойства символов)
Form XObjects этим свойством не раскрываются рекурсивно — тип сообщает
otForm, и вызывающему коду нужно спуститься в собственный список объектов
формы, если нужен leaf-level content
otText; всегда проверяйте ObjectCountFPDF_PAGEOBJ_* PDFium из native API
// Histogram of object types on the current page
var
I: Integer;
Counts: array[TObjectType] of Integer;
T: TObjectType;
begin
FillChar(Counts, SizeOf(Counts), 0);
for I := 0 to Pdf.ObjectCount - 1 do
Inc(Counts[Pdf.ObjectType[I]]);
for T := Low(TObjectType) to High(TObjectType) do
Memo1.Lines.Add(Format('%s: %d', [GetEnumName(TypeInfo(TObjectType), Ord(T)), Counts[T]]));
end;