PDFium Delphi Component Docs

구조 트리 순회 및 캐시

컴포넌트: TPdf  ·  유닛: PDFium
태그된 PDF 구조를 점진적으로 읽거나 완전한 리비전 인식 페이지 스냅샷을 재사용합니다

ReadStructureElements

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

반복적 전위 순회를 사용하며 안정적인 Level과 ParentIndex 값을 지닌 호출자 소유 평탄화 스냅샷을 반환합니다

각 TPdfStructureElement는 MarkedContentIDs, ChildCount, ChildMarkedContentIDs, AttributeCount로 계층 팩트를, HasHeaders, HeadersIds, ColSpan으로 표 구조를, 그리고 인쇄·참조 센티널인 HasPrintField와 HasReference를 보고합니다

역할 매핑은 RoleMappedNamespaceUri와 RoleMappedTypeName으로, 연관 파일은 HasAssociatedFile, AssociatedFileRelationship, AssociatedFileDescription, AssociatedFileDeclaredInCatalog, AssociatedFileDeclaredInStructure, AssociatedFileInEmbeddedFilesNameTree, AssociatedFileHasReadingOrder, AssociatedFileReadingOrderIndex로, 주석 팩트는 AnnotationSubtype, AnnotationContents, AnnotationAlternateText, IsArtifact, 위젯 센티널인 WidgetCount와 HasAppearance, 그리고 FieldAlternateName으로 노출됩니다

MaxDepth, MaxElements, MaxAttributeValues, DeadlineMilliseconds는 네이티브 작업과 관리 할당을 한정합니다

IncludeAttributes=False는 속성 값 생성을 건너뛰면서 구조 텍스트, 계층, MCID는 유지합니다

예산에 도달하거나 기한이 지나거나 방문자가 순회를 멈추면 Status.Completed는 false입니다

Status.ElementsVisited와 Status.AttributeValuesVisited는 수행된 작업을 세고, Status.DepthLimitReached, Status.ElementLimitReached, Status.AttributeLimitReached, Status.DeadlineReached는 어떤 예산이 순회를 멈췄는지 알려줍니다

VisitStructureElements

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

완전한 페이지 배열을 할당하지 않으면서 각 요소마다 Visitor를 한 번 호출합니다

정상적인 조기 중단은 콜백의 KeepGoing 매개변수를 false로 설정하며 Status.VisitorStopped로 보고됩니다

각 콜백은 콜백이 반환된 뒤에도 보관할 수 있는 관리 요소 데이터를 받으며, 네이티브 구조 핸들은 노출되지 않습니다

StructureElementsForPage

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

임의의 1 기반 페이지를 PageNumber나 OnPageChange를 바꾸지 않고 읽습니다

기본 예산으로 완료된 결과는 StructureElements, TPdfView.StructureElements, 읽을 수 있는 콘텐츠, 리플로, 구조화 텍스트, 접근성 검증이 함께 쓰는 공유 LRU 캐시에 들어갑니다

중첩된 동적 배열과 속성 블롭은 깊게 복사되므로 반환된 스냅샷을 바꿔도 캐시나 PDF는 수정되지 않습니다

StructureCacheCapacity

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

최근사용순으로 유지되는 완전한 페이지 스냅샷의 개수를 제한합니다

용량을 0으로 설정하면 캐시된 스냅샷이 해제되고 이후 캐싱이 비활성화됩니다

음수 용량 값은 EPdfError를 발생시킵니다

StructureCacheCount

property StructureCacheCount: Integer; // read only

현재 유효한 페이지 스냅샷 수를 반환합니다

StructureCacheHitCount and StructureCacheMissCount

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

컴포넌트 인스턴스의 누적 조회 텔레메트리를 노출합니다

편집은 누적 카운터를 보존하면서 해당 페이지 또는 캐시 전체를 무효화합니다

Default budgets

MaxDepth256
MaxElements100000
MaxAttributeValues100000
DeadlineMilliseconds0, 기한 없음
IncludeAttributesTrue

See Also

StructureElements, ReadableContent, ValidatePdfUaStructureElements