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;
KeepWithNextverschiebt einen Absatz, wenn er die letzte Zeile verbrauchen würde, die für den folgenden Inhalt erhalten bleiben sollMinOrphanLinesverhindert, dass zu wenige einleitende Zeilen am unteren Seitenrand stehen bleibenMinWidowLinesverschiebt einen Umbruch, wenn zu wenige abschließende Zeilen auf der nächsten Seite verbleiben würden- Die automatische Fortführung bewahrt die Quell-Seitenbreite, -Höhe, -Schriftart, -Ränder und Absatzeinstellungen
- Wenn
ParaAutoAddPagefalse ist, stoppt der Überlauf auf der aktuellen Seite und erzeugt eineldkOverflow-Diagnose
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
ldkAutomaticPageBreakmeldet eine gewöhnliche FortführungldkKeepWithNext,ldkOrphanControlundldkWidowControlidentifizieren die Einschränkung, die einen Umbruch verschoben hatldkOverflowidentifiziert Inhalt, der durch deaktivierte automatische Paginierung gestoppt wurdeldkImmediateFlushidentifiziert eine geschlossene Seite, die in dateigestützten Speicher verschoben wurde
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