property ObjectType[Index: Integer]: TObjectType; // read only
| Index | 0-basierter Seitenobjekt-Index, im Bereich 0 bis ObjectCount - 1 |
ObjectType liefert einen TObjectType-Enum-Wert, der die
Art des Seitenobjekts an Index beschreibt:
otText — Textanzeige-Operator (Tj, TJ, ', ") — ein Glyphenlauf mit gemeinsamer Schrift und TextmatrixotPath — Vektorpfad: Linien, Kurven, Rechtecke und Füllungen. Über ObjectBounds kommt man an das Rechteck auf der SeiteotImage — Rasterbild. Zusammen mit ObjectBitmap an die Pixel kommenotShading — Gradienten- oder funktionsbasiertes Shading-Pattern (PDF axial/radial/coon shading)otForm — Form-XObject: ein wiederverwendbarer Sub-Stream, der selbst Text, Pfade und Bilder enthalten kannDie Klassifikation ist stabil und billig; der Aufruf in einer engen Schleife über
ObjectCount ist der Standardweg, um Seiten-
inhalt zu sichten, bevor entschieden wird, welcher teurere Accessor (ObjectBitmap,
ObjectBounds, Zeicheneigenschaften) dran ist
Form-XObjects werden von dieser Eigenschaft nicht rekursiv aufgeklappt — der Typ
meldet otForm, und Aufrufer müssen selbst in die Objektliste des Form-XObjects absteigen,
wenn sie den Inhalt auf Blattebene brauchen
otText für Indizes außerhalb des gültigen Bereichs; immer mit ObjectCount absichernFPDF_PAGEOBJ_*-Konstanten aus der zugrunde liegenden nativen API wider
// 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;