布局可视化诊断

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