PDFium Delphi Component Docs

Structure traversal and cache

Composant: TPdf  ·  Unit: PDFium
Lit la structure PDF balisée de façon incrémentale ou réutilise des instantanés de page complets sensibles aux révisions

ReadStructureElements

function ReadStructureElements(PageNumber: Integer; const Options: TPdfStructureReadOptions; out Status: TPdfStructureReadStatus): TPdfStructureElements;

Utilise un parcours itératif préfixe et renvoie un instantané aplati détenu par l’appelant avec des valeurs Level et ParentIndex stables

Chaque TPdfStructureElement signale aussi les informations de hiérarchie via MarkedContentIDs, ChildCount, ChildMarkedContentIDs et AttributeCount, la structure de tableau via HasHeaders, HeadersIds et ColSpan, ainsi que les sentinelles d’impression et de référence HasPrintField et HasReference

Le mappage de rôles est exposé via RoleMappedNamespaceUri et RoleMappedTypeName, les fichiers associés via HasAssociatedFile, AssociatedFileRelationship, AssociatedFileDescription, AssociatedFileDeclaredInCatalog, AssociatedFileDeclaredInStructure, AssociatedFileInEmbeddedFilesNameTree, AssociatedFileHasReadingOrder et AssociatedFileReadingOrderIndex, et les informations d’annotation via AnnotationSubtype, AnnotationContents, AnnotationAlternateText, IsArtifact, les sentinelles de widget WidgetCount et HasAppearance, ainsi que FieldAlternateName

MaxDepth, MaxElements, MaxAttributeValues et DeadlineMilliseconds bornent le travail natif et l’allocation gérée

IncludeAttributes=False conserve le texte de structure, la hiérarchie et les MCID tout en omettant la matérialisation des valeurs d’attribut

Status.Completed vaut false lorsqu’un budget est atteint, que l’échéance expire ou qu’un visiteur arrête le parcours

Status.ElementsVisited et Status.AttributeValuesVisited comptent le travail effectué, tandis que Status.DepthLimitReached, Status.ElementLimitReached, Status.AttributeLimitReached et Status.DeadlineReached identifient quel budget a arrêté le parcours

VisitStructureElements

function VisitStructureElements(PageNumber: Integer; const Options: TPdfStructureReadOptions; Visitor: TPdfStructureElementVisitor; out Status: TPdfStructureReadStatus): Integer;

Appelle Visitor une fois pour chaque élément sans allouer le tableau complet de la page

Définissez à false le paramètre KeepGoing du rappel pour un arrêt anticipé normal, signalé par Status.VisitorStopped

Chaque rappel reçoit des données d’élément gérées pouvant être conservées après le retour du rappel, et aucun handle de structure natif n’est exposé

StructureElementsForPage

property StructureElementsForPage[PageNumber: Integer]: TPdfStructureElements; // read only

Lit n’importe quelle page en base 1 sans changer PageNumber ni déclencher OnPageChange

Les résultats complets obtenus avec les budgets par défaut entrent dans le cache LRU partagé utilisé par StructureElements, TPdfView.StructureElements, le contenu lisible, le reflux, le texte structuré et la validation d’accessibilité

Les tableaux dynamiques imbriqués et les blobs d’attributs sont copiés en profondeur, de sorte que la modification d’un instantané renvoyé ne peut pas altérer le cache ni le PDF

StructureCacheCapacity

property StructureCacheCapacity: Integer; // read and write, default 8

Limite le nombre d’instantanés de page complets conservés selon l’ordre LRU (le moins récemment utilisé)

Définissez la capacité à zéro pour libérer les instantanés en cache et désactiver la mise en cache ultérieure

Des valeurs de capacité négatives lèvent EPdfError

StructureCacheCount

property StructureCacheCount: Integer; // read only

Renvoie le nombre actuel d’instantanés de page valides

StructureCacheHitCount and StructureCacheMissCount

property StructureCacheHitCount: Int64; // read only
property StructureCacheMissCount: Int64; // read only

Exposent une télémétrie cumulative des consultations pour l’instance du composant

Les modifications invalident la page concernée ou la totalité du cache tout en préservant les compteurs cumulatifs

Default budgets

MaxDepth256
MaxElements100000
MaxAttributeValues100000
DeadlineMilliseconds0 pour aucune échéance
IncludeAttributesTrue

See Also

StructureElements, ReadableContent, ValidatePdfUaStructureElements