function BuildReflowDocument(
const Options: TPdfReflowOptions;
const CancellationToken: IPdfCancellationToken = nil): TPdfReflowDocument;
BuildReflowDocument liest jede ausgewählte Seite über GetStructuredText, bevorzugt Tagged-PDF-Semantik und fällt auf Inferenz aus dem physischen Layout zurück, wenn keine Struktur vorhanden ist
Das zurückgegebene TPdfReflowDocument.Nodes-Array ist ein stabiler Pre-Order-Baum mit ParentIndex und Depth, der rekursives Eigentum vermeidet und dabei die Beziehungen zwischen Seiten, Überschriften, Absätzen, Listen, Abbildungen, Beschriftungen, Tabellen, Zeilen und Zellen bewahrt
Jeder TPdfReflowNode trägt seine Seite, seinen Text, seine Sprache, seine semantische Quelle, seine Begrenzungen, seine Überschriftenebene, die Tabellenkoordinaten RowIndex und ColumnIndex mit ihren Spannen, den IsHeader-Zustand und, wo zutreffend, die Konfidenz
TPdfReflowOptions wählt das Seitenfenster und die Ausgabeschranken; DetectTables aktiviert die Tabellenerkennung mit dem verschachtelten Budget-Record TableOptions, und das entstehende TPdfReflowDocument legt die erkannte TableCount neben seinem Knotenbaum offen
Erkannter Tabellentext ersetzt überlappende Absatzblöcke, damit das Reflow-Ergebnis Tabelleninhalte nicht dupliziert
TPdfReflowDocument.ToHtml gibt semantische h1 bis h6-, p-, ul-, li-, figure-, figcaption-, table-, th- und td-Elemente aus
Text- und Attributwerte werden stets escaped, Zeilen- und Spaltenspannen bleiben erhalten, und optionales responsives CSS benötigt kein Skript und keine externe Ressource
FullDocument, IncludeCss, IncludePageSections, IncludeGeometry und PreserveLineBreaks steuern die Serialisierung, ohne das PDF neu zu parsen
FirstPage und LastPage sind einsbasiert, wobei null die Dokumentgrenze auswähltMaxCharacters, MaxNodes und die verschachtelten Tabellenbudgets schlagen kontrolliert fehl, bevor unbegrenzte Ausgabe entstehtvar
Options: TPdfReflowOptions;
Document: TPdfReflowDocument;
begin
Options := TPdfReflowOptions.Default;
Options.IncludeGeometry := True;
Document := Pdf1.BuildReflowDocument(Options);
Memo1.Text := Document.ToHtml;
end;