PDFium Delphi Component Docs

Travessia e cache de estrutura

Componente: TPdf  ·  Unidade: PDFium
Leia a estrutura PDF marcada de forma incremental ou reutilize snapshots de página completos e cientes de revisão

ReadStructureElements

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

VisitStructureElements

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

StructureElementsForPage

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

StructureCacheCapacity

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

StructureCacheCount

property StructureCacheCount: Integer; // read only

Retorna o número atual de snapshots válidos de página

StructureCacheHitCount and StructureCacheMissCount

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

Orçamentos padrão

MaxDepth256
MaxElements100000
MaxAttributeValues100000
DeadlineMilliseconds0 para ausência de prazo
IncludeAttributesTrue

See Also

StructureElements, ReadableContent, ValidatePdfUaStructureElements