PDFium Delphi Component Docs

BuildReflowDocument metoda

Komponenta: TPdf  ·  Jednotka: PDFium
Sestaví ohraničený sémantický model čtení pro responzivní HTML, mobilní čtení, přístupnost a indexování

Syntaxe

function BuildReflowDocument(
  const Options: TPdfReflowOptions;
  const CancellationToken: IPdfCancellationToken = nil): TPdfReflowDocument;

Popis

BuildReflowDocument přečte každou vybranou stránku prostřednictvím GetStructuredText, dává přednost sémantice Tagged PDF a když struktura chybí, přechází na odvozování fyzického rozvržení

Vrácené pole TPdfReflowDocument.Nodes je stabilní strom v preorderu s ParentIndex a Depth, který se vyhýbá rekurzivnímu vlastnictví a přitom zachovává vztahy stránky, nadpisu, odstavce, seznamu, obrázku, popisku, tabulky, řádku a buňky

Každý TPdfReflowNode nese svou stránku, text, jazyk, sémantický zdroj, hranice, úroveň nadpisu, tabulkové souřadnice RowIndex a ColumnIndex s jejich rozpětími, stav IsHeader a tam, kde je to relevantní, i míru jistoty

TPdfReflowOptions vybírá okno stránek a výstupní brány; DetectTables zapíná detekci tabulek s vnořeným rozpočtovým záznamem TableOptions a výsledný TPdfReflowDocument vystavuje zjištěný TableCount vedle svého stromu uzlů

Text zjištěných tabulek nahrazuje překrývající se bloky odstavců, takže přeformátovaný výsledek nezdvojuje obsah tabulek

Výstup HTML

TPdfReflowDocument.ToHtml vysílá sémantické elementy h1h6, p, ul, li, figure, figcaption, table, th a td

Texty a hodnoty atributů se vždy escapují, rozpětí řádků a sloupců se zachovávají a volitelné responzivní CSS nepotřebuje žádný skript ani externí zdroj

FullDocument, IncludeCss, IncludePageSections, IncludeGeometry a PreserveLineBreaks řídí serializaci bez opětovného parsování PDF

Rozsahy a rozpočty

Příklad

var
  Options: TPdfReflowOptions;
  Document: TPdfReflowDocument;
begin
  Options := TPdfReflowOptions.Default;
  Options.IncludeGeometry := True;
  Document := Pdf1.BuildReflowDocument(Options);
  Memo1.Text := Document.ToHtml;
end;

Viz také

GetStructuredText, ExtractTables, ReadableContent