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
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é
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
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
property StructureCacheCount: Integer; // read only
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
| MaxDepth | 256 |
| MaxElements | 100000 |
| MaxAttributeValues | 100000 |
| DeadlineMilliseconds | 0 pour aucune échéance |
| IncludeAttributes | True |