版面視覺診斷
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 會重設記錄、放置追蹤與所有相關計數器