function ReadStructureElements(PageNumber: Integer; const Options: TPdfStructureReadOptions; out Status: TPdfStructureReadStatus): TPdfStructureElements;
Usa travessia iterativa em pré-ordem e retorna um snapshot achatado de propriedade do chamador com valores estáveis de Level e ParentIndex
Cada TPdfStructureElement também relata fatos de hierarquia por meio de MarkedContentIDs, ChildCount, ChildMarkedContentIDs e AttributeCount, estrutura de tabela por meio de HasHeaders, HeadersIds e ColSpan, e as sentinelas de impressão e referência HasPrintField e HasReference
O mapeamento de papéis é exposto por meio de RoleMappedNamespaceUri e RoleMappedTypeName, os arquivos associados por meio de HasAssociatedFile, AssociatedFileRelationship, AssociatedFileDescription, AssociatedFileDeclaredInCatalog, AssociatedFileDeclaredInStructure, AssociatedFileInEmbeddedFilesNameTree, AssociatedFileHasReadingOrder e AssociatedFileReadingOrderIndex, e os fatos de anotação por meio de AnnotationSubtype, AnnotationContents, AnnotationAlternateText, IsArtifact, as sentinelas de widget WidgetCount e HasAppearance e FieldAlternateName
MaxDepth, MaxElements, MaxAttributeValues e DeadlineMilliseconds limitam o trabalho nativo e a alocação gerenciada
IncludeAttributes=False mantém o texto de estrutura, a hierarquia e os MCIDs enquanto ignora a materialização dos valores de atributo
Status.Completed é False quando qualquer orçamento é alcançado, o prazo expira ou um visitante interrompe a travessia
Status.ElementsVisited e Status.AttributeValuesVisited contam o trabalho realizado, enquanto Status.DepthLimitReached, Status.ElementLimitReached, Status.AttributeLimitReached e Status.DeadlineReached identificam qual orçamento interrompeu a passagem
function VisitStructureElements(PageNumber: Integer; const Options: TPdfStructureReadOptions; Visitor: TPdfStructureElementVisitor; out Status: TPdfStructureReadStatus): Integer;
Chama Visitor uma vez para cada elemento sem alocar o array completo da página
Defina o parâmetro KeepGoing do callback como false para uma parada antecipada normal, relatada por Status.VisitorStopped
Cada callback recebe dados de elemento gerenciados que podem ser retidos após o retorno do callback, e nenhum handle de estrutura nativo é exposto
property StructureElementsForPage[PageNumber: Integer]: TPdfStructureElements; // read only
Lê qualquer página com base um sem alterar PageNumber nem disparar OnPageChange
Resultados completos com orçamento padrão entram no cache LRU compartilhado usado por StructureElements, TPdfView.StructureElements, conteúdo legível, reflow, texto estruturado e validação de acessibilidade
Arrays dinâmicos aninhados e blobs de atributos são copiados em profundidade, de modo que alterar um snapshot retornado não pode modificar o cache nem o PDF
property StructureCacheCapacity: Integer; // read and write, default 8
Limita o número de snapshots completos de página retidos pela ordem de menos recentemente usado
Defina a capacidade como zero para liberar os snapshots em cache e desativar o cache futuro
Valores de capacidade negativos disparam EPdfError
property StructureCacheCount: Integer; // read only
property StructureCacheHitCount: Int64; // read only
property StructureCacheMissCount: Int64; // read only
Expõem telemetria cumulativa de consultas para a instância do componente
Edições invalidam a página afetada ou o cache completo, preservando os contadores cumulativos
| MaxDepth | 256 |
| MaxElements | 100000 |
| MaxAttributeValues | 100000 |
| DeadlineMilliseconds | 0 para ausência de prazo |
| IncludeAttributes | True |