受限制的串流版面配置

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 會發出標準的 /P 標記內容序列,並配置 MCID、頁面父樹接線,以及選用的 /Lang 與 /ActualText 值

THPDFPaginationArtifactSubtype 提供 pasHeader、pasFooter、pasWatermark 與 pasPageNumber,以 /Artifact 內容搭配 /Type /Pagination 與對應的標準子類型發出

相關 API