布局可视化诊断
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 重置记录、放置跟踪和所有相关计数器