PDFium Delphi Component Docs

Strukturtraversierung und Cache

Komponente: TPdf  ·  Unit: PDFium
Tagged-PDF-Strukturen inkrementell lesen oder vollständige revisionsbewusste Seitensnapshots wiederverwenden

ReadStructureElements

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

VisitStructureElements

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

StructureElementsForPage

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

StructureCacheCapacity

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

StructureCacheCount

property StructureCacheCount: Integer; // read only

Liefert die aktuelle Anzahl gültiger Seitensnapshots

StructureCacheHitCount und StructureCacheMissCount

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

Standard-Budgets

MaxDepth256
MaxElements100000
MaxAttributeValues100000
DeadlineMilliseconds0 für keine Frist
IncludeAttributesTrue

Siehe auch

StructureElements, ReadableContent, ValidatePdfUaStructureElements