Eingeschränktes Streaming-Layout

HotPDF kann jede abgeschlossene Seite in dateigestütztem Speicher bereitstellen, Absatz-Seitenumbruchseinschränkungen anwenden, begrenzte Layout-Diagnostik bereitstellen, semantische Absätze und Paginierungs-Artefakte markieren und die Absatz-Basisrichtung auflösen, bevor Text mit gemischter Richtung ausgegeben wird

Sofortiges Seitenausflushen

Setzen Sie ImmediateFlushLayout vor BeginDoc für Berichte, deren Seitenanzahl nicht im Voraus bekannt ist

Wenn eine Seite geschlossen wird, wird ihr endgültiger komprimierter oder unkomprimierter Inhaltsstrom vom Speicher in einen eigenen temporären Datei-Stream verschoben, während das PDF-Objekt für die normale Cross-Reference- und Ressourcenfinalisierung verfügbar bleibt

ImmediateFlushedPageCount und ImmediateFlushedBytes melden die Menge der bereitgestellten Inhalte, und die temporären Dateien werden gelöscht, wenn ihre Eigentümer-Streams freigegeben werden

Absatz-Paginierung

ParagraphIndex := PDF.CreateParagraph(0, jtLeft, 36, 36, 36, 36);
PDF.ConfigureParagraphPagination(ParagraphIndex, True, 2, 2);
PDF.ConfigureParagraphDirection(ParagraphIndex, pdAuto);
PDF.BeginParagraph(ParagraphIndex);
PDF.CurrentParagraph.ShowUnicodeText(BodyText);
PDF.EndParagraph;

Layout-Diagnostik

THPDFLayoutDiagnostic zeichnet den THPDFLayoutDiagnosticKind, Quell- und zugehörige Seitenindizes, das betroffene Rechteck, die Zeilenanzahl und einen englischen Grund für jede behaltene Entscheidung auf

THPDFLayoutDiagnosticArray wird von GetLayoutDiagnostics zurückgegeben, während GetLayoutDiagnostic indizierten Zugriff ohne Zuweisung einer Kopie unterstützt

LayoutDiagnosticLimit begrenzt die behaltenen Datensätze und LayoutDiagnosticDroppedCount meldet Entscheidungen, die nach diesem Limit verworfen wurden

Absatzrichtung

THPDFParagraphDirection stellt pdAuto, pdLeftToRight und pdRightToLeft bereit

DetectParagraphDirection wendet die First-Strong-Character-Auflösung über BMP- und RTL-Schriften der ergänzenden Ebene an, sodass neutrale Präfixe und sekundäre Richtungsabläufe nicht die falsche Basisrichtung wählen

Verwenden Sie ConfigureParagraphDirection für eine dauerhafte Absatzeinstellung oder die THPDFPara.Direction-Eigenschaft für den aktiven Absatz

PDF/UA-Absatzsemantik

Root := PDF.AddStructureElement('Document', nil);
Paragraph := PDF.BeginTaggedParagraph(Root, 'en-US', 'Accessible text');
PDF.CurrentPage.TextOut(36, 72, 0, WideString('Accessible text'));
PDF.EndTaggedParagraph;

PDF.BeginPaginationArtifact(pasHeader);
PDF.CurrentPage.TextOut(36, 20, 0, WideString('Running header'));
PDF.EndPaginationArtifact;

BeginTaggedParagraph gibt eine Standard-/P-Marked-Content-Sequenz mit einer zugewiesenen MCID, Parent-Tree-Verkabelung der Seite und optionalen /Lang- und /ActualText-Werten aus

THPDFPaginationArtifactSubtype stellt pasHeader, pasFooter, pasWatermark und pasPageNumber bereit, die als /Artifact-Inhalt mit /Type /Pagination und dem passenden Standard-Untertyp ausgegeben werden

Verwandte APIs