function GetStructuredText(
const Options: TPdfStructuredTextOptions): TPdfStructuredTextPage;
GetStructuredText зчитує скаляри Unicode, рамки символів, розмір шрифту, насиченість, назву шрифту, кут і тотожність текстового об’єкта через нативні текстові API PDFium
Символи стають стилізованими діапазонами, діапазони — фізичними рядками, горизонтально пов’язані рядки — блоками, а текст блоків об’єднується в поле Text рівня сторінки
Кожен нативний скаляр зберігається як UTF-16, зокрема символи додаткових площин, представлені сурогатними парами
ReadingOrder — roPhysicalLayout групує геометрію згори вниз і зліва направо; roContentOrder зберігає нативну послідовність потоку вмістуIncludeFontInfo — додає назву, розмір, насиченість і кут шрифту до кожного діапазону, типово TrueIncludeSemantics — зіставляє наявну модель Tagged PDF або евристичних читабельних даних із кожним блоком, типово TrueMaxCharacters — бюджет символів сторінки з відмовою при перевищенні, типово 1000000| Record | Key data |
|---|---|
TPdfStructuredTextPage | PageNumber, Width і Height, кількості символів і збоїв, Source, об’єднаний Text і Blocks |
TPdfStructuredTextBlock | Межі, текст, тип структури, рівень заголовка, мова, джерело, індекс елемента структури та рядки |
TPdfStructuredTextLine | Межі, об’єднаний текст і стилізовані діапазони |
TPdfStructuredTextSpan | Text, Bounds, діапазон SourceStartIndex і SourceCharacterCount, FontName, FontSize, FontWeight і Angle |
Kind, HeadingLevel, Language, Source і StructElementIndexUnmappedCharacterCount рахує нативні нульові зіставлення, замінені на U+FFFDGeometryFailureCount рахує нерозривні символи без придатних нативних меж, зберігаючи їхній текстФізичний порядок використовує сортування символів за O(n log n), буфери рядків і діапазонів із геометричним зростанням, буферизоване побудування UTF-16 і кешування шрифтів сусідніх ненульових текстових об’єктів
Установіть IncludeFontInfo або IncludeSemantics у False, коли ці збагачувальні шари не потрібні
var
Options: TPdfStructuredTextOptions;
Page: TPdfStructuredTextPage;
begin
Options := TPdfStructuredTextOptions.Default;
Options.MaxCharacters := 250000;
Page := Pdf1.GetStructuredText(Options);
Memo1.Text := Page.Text;
end;