function ReadStructureElements(PageNumber: Integer; const Options: TPdfStructureReadOptions; out Status: TPdfStructureReadStatus): TPdfStructureElements;
Verwendet iterative Pre-Order-Traversierung und liefert einen aufrufereigenen flachen Snapshot mit stabilen Level- und ParentIndex-Werten
Jeder TPdfStructureElement meldet Hierarchiefakten über MarkedContentIDs, ChildCount, ChildMarkedContentIDs und AttributeCount, Tabellenstruktur über HasHeaders, HeadersIds und ColSpan sowie die Druck- und Referenz-Sentinel HasPrintField und HasReference
Die Rollenzuordnung wird über RoleMappedNamespaceUri und RoleMappedTypeName offengelegt, zugehörige Dateien über HasAssociatedFile, AssociatedFileRelationship, AssociatedFileDescription, AssociatedFileDeclaredInCatalog, AssociatedFileDeclaredInStructure, AssociatedFileInEmbeddedFilesNameTree, AssociatedFileHasReadingOrder und AssociatedFileReadingOrderIndex sowie Anmerkungsfakten über AnnotationSubtype, AnnotationContents, AnnotationAlternateText, IsArtifact, die Widget-Sentinel WidgetCount und HasAppearance und FieldAlternateName
MaxDepth, MaxElements, MaxAttributeValues und DeadlineMilliseconds begrenzen native Arbeit und verwaltete Allokation
IncludeAttributes=False behält Strukturtext, Hierarchie und MCIDs bei und überspringt die Materialisierung von Attributwerten
Status.Completed ist false, sobald ein Budget erreicht wird, die Frist abläuft oder ein Visitor die Traversierung stoppt
Status.ElementsVisited und Status.AttributeValuesVisited zählen die geleistete Arbeit, während Status.DepthLimitReached, Status.ElementLimitReached, Status.AttributeLimitReached und Status.DeadlineReached angeben, welches Budget den Durchlauf beendet hat
function VisitStructureElements(PageNumber: Integer; const Options: TPdfStructureReadOptions; Visitor: TPdfStructureElementVisitor; out Status: TPdfStructureReadStatus): Integer;
Ruft Visitor einmal pro Element auf, ohne das vollständige Seitenarray zu allokieren
Setzen Sie den Parameter KeepGoing des Callbacks auf false für einen normalen vorzeitigen Stopp, der über Status.VisitorStopped gemeldet wird
Jeder Callback erhält verwaltete Elementdaten, die nach der Rückkehr des Callbacks vorgehalten werden können, und es wird kein natives Struktur-Handle offengelegt
property StructureElementsForPage[PageNumber: Integer]: TPdfStructureElements; // read only
Liest eine beliebige 1-basierte Seite, ohne PageNumber zu ändern oder OnPageChange auszulösen
Vollständige Ergebnisse mit Standard-Budgets landen im gemeinsamen LRU-Cache, den StructureElements, TPdfView.StructureElements, lesbarer Inhalt, Reflow, strukturierter Text und Barrierefreiheitsvalidierung verwenden
Verschachtelte dynamische Arrays und Attribut-Blobs werden tief kopiert, sodass das Ändern eines zurückgegebenen Snapshots weder den Cache noch das PDF verändern kann
property StructureCacheCapacity: Integer; // read and write, default 8
Begrenzt die Anzahl der vollständigen Seitensnapshots, die in Least-Recently-Used-Reihenfolge vorgehalten werden
Setzen Sie die Kapazität auf null, um zwischengespeicherte Snapshots freizugeben und künftiges Caching zu deaktivieren
Negative Kapazitätswerte lösen EPdfError aus
property StructureCacheCount: Integer; // read only
property StructureCacheHitCount: Int64; // read only
property StructureCacheMissCount: Int64; // read only
Stellen kumulative Lookup-Telemetrie für die Komponenteninstanz bereit
Bearbeitungen machen die betroffene Seite oder den gesamten Cache ungültig und erhalten dabei die kumulativen Zähler
| MaxDepth | 256 |
| MaxElements | 100000 |
| MaxAttributeValues | 100000 |
| DeadlineMilliseconds | 0 für keine Frist |
| IncludeAttributes | True |