PDFium Delphi Component Docs

BuildReflowDocument Methode

Komponente: TPdf  ·  Unit: PDFium
Erstellt ein begrenztes semantisches Lesemodell für responsives HTML, mobiles Lesen, Barrierefreiheit und Indexierung

Syntax

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

Beschreibung

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

HTML-Ausgabe

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

Bereiche und Budgets

Beispiel

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

Siehe auch

GetStructuredText, ExtractTables, ReadableContent