版面視覺診斷

HotPDF 可以保留有界的版面決策、偵測已放置元素的重疊、繪製原生向量疊加層、附加呼叫端提供的來源位置,並發布同步預覽通知

安全預設值

THPDFLayoutDiagnosticOptions.Default 保留元素路徑,而來源位置擷取、重疊偵測、PDF 疊加層與即時回呼預設關閉

除非明確啟用對應選項,否則不會有任何來源檔名或疊加內容進入產生的 PDF

啟用視覺診斷

Options := THPDFLayoutDiagnosticOptions.Default;
Options.CaptureSourceLocation := True;
Options.DetectOverlaps := True;
Options.DrawOverlays := True;
Options.LivePreview := True;
PDF.LayoutDiagnosticOptions := Options;
PDF.OnLayoutDiagnostic := HandleLayoutDiagnostic;

Element.SetDiagnosticSource('invoice_layout.pas', 73, 9);

SetDiagnosticSource 在 THPDFLayoutElement 上存放選用的檔案、行與欄;ClearDiagnosticSource 則移除該對應

宣告式版面延續會複製這份對應,讓呼叫位置在跨頁拆分時保持穩定

診斷記錄

THPDFLayoutDiagnostic 除了頁面、矩形、行數、種類與原因之外,還包含 ElementPath、RelatedElementPath、SourceFile、SourceLine 與 SourceColumn

ldkOverlap 表示兩個成功放置的元素相交,ldkOverflow 則表示元素放不進給定的邊界

向量疊加層與即時預覽

溢位矩形使用紅色外框,重疊矩形使用橘色外框,標籤顯示與否由 ShowOverlayLabels 控制

疊加層是原生 PDF 路徑與文字,而不是點陣影像

啟用 LivePreview 時,THPDFLayoutDiagnosticEvent 會在完成選用的疊加層繪製之後,同步收到每條保留的診斷

預算與統計

MaxTrackedBounds 限制保留的放置矩形數量,MaxOverlapComparisons 限制診斷區間內的相交運算量

THPDFLayoutDiagnosticStatistics 回報保留與捨棄的診斷、追蹤與捨棄的邊界、重疊比較與發現、繪製的疊加層以及即時通知

ClearLayoutDiagnostics 會重設記錄、放置追蹤與所有相關計數器

相關 API