制約付きストリーミングレイアウト

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;

レイアウト診断

THPDFLayoutDiagnostic は、保持された各決定について THPDFLayoutDiagnosticKind、ソースおよび関連ページインデックス、影響を受ける矩形、行数、および英語の理由を記録します

THPDFLayoutDiagnosticArray は GetLayoutDiagnostics から返され、GetLayoutDiagnostic はコピーを割り当てずにインデックスによるアクセスをサポートします

LayoutDiagnosticLimit は保持されるレコード数を制限し、LayoutDiagnosticDroppedCount はその制限を超えて破棄された決定数を報告します

段落の方向

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 および一致する標準サブタイプ付きで出力されます

関連 API