function GetStructuredText(
const Options: TPdfStructuredTextOptions): TPdfStructuredTextPage;
GetStructuredText čte Unicode skaláry, rámečky znaků, velikost fontu, váhu fontu, název fontu, úhel a identitu textového objektu přes nativní textová API PDFium
Znaky tvoří stylované spany, spany tvoří fyzické řádky, vodorovně související řádky tvoří bloky a text bloků se spojí do pole Text na úrovni stránky
Každý nativní skalár se zachová jako UTF-16, včetně znaků doplňkových rovin reprezentovaných dvojicemi surrogate
ReadingOrder — roPhysicalLayout seskupuje geometrii shora dolů a zleva doprava; roContentOrder zachovává nativní pořadí obsahového prouduIncludeFontInfo — do každého spanu zahrne název, velikost, váhu a úhel fontu, výchozí TrueIncludeSemantics — mapuje na každý blok existující model Tagged PDF nebo heuristický model čitelného obsahu, výchozí TrueMaxCharacters — fail-closed rozpočet znaků stránky, výchozí 1000000| Záznam | Klíčová data |
|---|---|
TPdfStructuredTextPage | PageNumber, Width a Height, počty znaků a selhání, Source, spojený Text a Blocks |
TPdfStructuredTextBlock | Meze, text, druh struktury, úroveň nadpisu, jazyk, zdroj, index strukturního prvku a řádky |
TPdfStructuredTextLine | Meze, spojený text a stylované spany |
TPdfStructuredTextSpan | Text, Bounds, rozsah SourceStartIndex a SourceCharacterCount, FontName, FontSize, FontWeight a Angle |
Kind, HeadingLevel, Language, Source a StructElementIndexUnmappedCharacterCount počítá nativní nulová mapování nahrazená U+FFFDGeometryFailureCount počítá znaky bez použitelných nativních mezí, přičemž jejich text zůstává zachovánFyzické pořadí používá řazení znaků O(n log n), geometricky rostoucí buffery řádků a spanů, bufferovanou konstrukci UTF-16 a cache fontů pro sousední nenulové textové objekty
Nastavte IncludeFontInfo nebo IncludeSemantics na False, když jsou tyto obohacující vrstvy zbytečné
var
Options: TPdfStructuredTextOptions;
Page: TPdfStructuredTextPage;
begin
Options := TPdfStructuredTextOptions.Default;
Options.MaxCharacters := 250000;
Page := Pdf1.GetStructuredText(Options);
Memo1.Text := Page.Text;
end;