function GetStructuredText(
const Options: TPdfStructuredTextOptions): TPdfStructuredTextPage;
GetStructuredText odczytuje skalary Unicode, pola znaków, rozmiar czcionki, grubość czcionki, nazwę czcionki, kąt i tożsamość obiektu tekstowego przez natywne API tekstowe PDFium
Znaki stają się spanami ze stylami, spany stają się fizycznymi liniami, powiązane poziomo linie stają się blokami, a tekst bloków jest sklejany w pole Text na poziomie strony
Każdy natywny skalar jest zachowywany jako UTF-16, łącznie ze znakami płaszczyzn uzupełniających reprezentowanymi parami surrogatów
ReadingOrder — roPhysicalLayout grupuje geometrię od góry do dołu i od lewej do prawej; roContentOrder zachowuje natywną kolejność strumienia treściIncludeFontInfo — dołącza do każdego spanu nazwę, rozmiar, grubość i kąt czcionki, domyślnie TrueIncludeSemantics — mapuje istniejący model Tagged PDF lub heurystyczny model treści czytelnych do każdego bloku, domyślnie TrueMaxCharacters — budżet znaków strony działający według zasady fail-closed, domyślnie 1000000| Record | Key data |
|---|---|
TPdfStructuredTextPage | PageNumber, Width i Height, liczniki znaków i niepowodzeń, Source, scalony Text oraz Blocks |
TPdfStructuredTextBlock | Granice, tekst, rodzaj struktury, poziom nagłówka, język, źródło, indeks elementu struktury i linie |
TPdfStructuredTextLine | Granice, scalony tekst i spany ze stylami |
TPdfStructuredTextSpan | Text, Bounds, zakres SourceStartIndex i SourceCharacterCount, FontName, FontSize, FontWeight oraz Angle |
Kind, HeadingLevel, Language, Source i StructElementIndexUnmappedCharacterCount liczy natywne zera mapowania zastąpione przez U+FFFDGeometryFailureCount liczy znaki bez przerwy, którym brakuje użytecznych natywnych granic, zachowując ich tekstUporządkowanie fizyczne używa sortowania znaków O(n log n), geometrycznie rosnących buforów linii i spanów, buforowanego budowania UTF-16 oraz pamięci podręcznej czcionek sąsiednich niepustych obiektów tekstowych
Ustaw IncludeFontInfo lub IncludeSemantics na False, gdy te warstwy wzbogacania są zbędne
var
Options: TPdfStructuredTextOptions;
Page: TPdfStructuredTextPage;
begin
Options := TPdfStructuredTextOptions.Default;
Options.MaxCharacters := 250000;
Page := Pdf1.GetStructuredText(Options);
Memo1.Text := Page.Text;
end;