function GetStructuredText(
const Options: TPdfStructuredTextOptions): TPdfStructuredTextPage;
GetStructuredText는 PDFium의 네이티브 텍스트 API를 통해 Unicode 스칼라, 문자 박스, 글꼴 크기, 글꼴 굵기, 글꼴 이름, 각도, 텍스트 객체 식별 정보를 읽습니다
문자는 스타일 span이 되고, span은 물리 줄이 되고, 가로 방향으로 관련된 줄들은 블록이 되며, 블록 텍스트는 페이지 수준 Text 필드로 합쳐집니다
모든 네이티브 스칼라는 서로게이트 쌍으로 표현되는 보충 평면 문자를 포함해 UTF-16으로 그대로 보존됩니다
ReadingOrder — roPhysicalLayout은 위에서 아래, 왼쪽에서 오른쪽 지오메트리로 묶고 roContentOrder는 네이티브 콘텐츠 스트림 순서를 유지합니다IncludeFontInfo — 각 span에 글꼴 이름, 크기, 굵기, 각도를 포함하며 기본값은 True입니다IncludeSemantics — 기존의 Tagged PDF 또는 휴리스틱 판독 가능 콘텐츠 모델을 각 블록에 매핑하며 기본값은 True입니다MaxCharacters — 실패로 닫히는(fail-closed) 페이지 문자 예산이며 기본값은 1000000입니다| Record | Key data |
|---|---|
TPdfStructuredTextPage | PageNumber, Width와 Height, 문자 개수와 실패 개수, Source, 합쳐진 Text, Blocks |
TPdfStructuredTextBlock | 경계, 텍스트, 구조 종류, 제목 수준, 언어, 소스, 구조 요소 인덱스, 줄 |
TPdfStructuredTextLine | 경계, 합쳐진 텍스트, 스타일 span |
TPdfStructuredTextSpan | Text, Bounds, SourceStartIndex와 SourceCharacterCount 범위, FontName, FontSize, FontWeight, Angle |
Kind, HeadingLevel, Language, Source, StructElementIndex를 채울 수 있습니다UnmappedCharacterCount는 U+FFFD로 대체된 네이티브 zero 매핑을 셉니다GeometryFailureCount는 텍스트를 유지한 채 쓸 수 있는 네이티브 경계가 없는 non-break 문자를 셉니다물리 순서는 O(n log n) 문자 정렬, 기하급수적으로 늘어나는 줄·span 버퍼, 버퍼링된 UTF-16 생성, 인접 non-null 텍스트 객체 글꼴 캐싱을 사용합니다
해당 보강 레이어가 필요 없다면 IncludeFontInfo나 IncludeSemantics를 False로 설정하세요
var
Options: TPdfStructuredTextOptions;
Page: TPdfStructuredTextPage;
begin
Options := TPdfStructuredTextOptions.Default;
Options.MaxCharacters := 250000;
Page := Pdf1.GetStructuredText(Options);
Memo1.Text := Page.Text;
end;