制約付きストリーミングレイアウト
HotPDF は、完成した各ページをファイルベースのストレージにステージングし、段落の改ページ制約を適用し、境界付きのレイアウト診断を公開し、意味段落とページネーションアーティファクトをマークし、混在方向テキストを出力する前に段落の基本方向を解決できます
即時ページフラッシュ
ページ数が事前に分からないレポートでは、BeginDoc の前に ImmediateFlushLayout を設定します
ページが閉じられると、その最終的な圧縮済みまたは未圧縮のコンテンツストリームはメモリから所有権を持つ一時ファイルストリームに移動し、PDF オブジェクトは通常のクロスリファレンスおよびリソース確定のために引き続き利用可能です
ImmediateFlushedPageCount と ImmediateFlushedBytes はステージングされたコンテンツの量を報告し、一時ファイルは所有するストリームが解放されると削除されます
段落のページネーション
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;
KeepWithNextは、続くコンテンツのために残すべき最後の行を消費してしまう場合に段落を移動させますMinOrphanLinesは、ページの下部に開始行が少なすぎる状態になるのを防ぎますMinWidowLinesは、次のページに残る終了行が少なすぎる場合に改行を進めます- 自動継続は、ソースページの幅、高さ、フォント、マージン、および段落設定を保持します
ParaAutoAddPageが false の場合、オーバーフローは現在のページで停止し、ldkOverflow診断を生成します
レイアウト診断
THPDFLayoutDiagnostic は、保持された各決定について THPDFLayoutDiagnosticKind、ソースおよび関連ページインデックス、影響を受ける矩形、行数、および英語の理由を記録します
THPDFLayoutDiagnosticArray は GetLayoutDiagnostics から返され、GetLayoutDiagnostic はコピーを割り当てずにインデックスによるアクセスをサポートします
LayoutDiagnosticLimit は保持されるレコード数を制限し、LayoutDiagnosticDroppedCount はその制限を超えて破棄された決定数を報告します
ldkAutomaticPageBreakは通常の継続を報告しますldkKeepWithNext、ldkOrphanControl、ldkWidowControlは、改行を移動させた制約を識別しますldkOverflowは、無効化された自動ページネーションによって停止されたコンテンツを識別しますldkImmediateFlushは、ファイルベースのストレージに移動された閉じたページを識別します
段落の方向
THPDFParagraphDirection は pdAuto、pdLeftToRight、pdRightToLeft を提供します
DetectParagraphDirection は BMP および補助平面の RTL スクリプト全体で最初の強い文字による解決を適用するため、中立的なプレフィックスや二次的な方向ランニングが誤った基本方向を選択することはありません
永続的な段落設定には ConfigureParagraphDirection を、アクティブな段落には THPDFPara.Direction プロパティを使用します
PDF/UA 段落セマンティクス
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 は、割り当てられた MCID、ページの親ツリーワイヤリング、およびオプションの /Lang と /ActualText 値を持つ標準の /P マーク付きコンテンツシーケンスを出力します
THPDFPaginationArtifactSubtype は pasHeader、pasFooter、pasWatermark、pasPageNumber を提供し、/Artifact コンテンツとして /Type /Pagination および一致する標準サブタイプ付きで出力されます