THPDFLayoutDiagnostic 记录
一条结构化的布局事件:发生了什么、为什么发生,涉及的页面和矩形、行数、元素路径,以及元素可选的源代码位置
声明
THPDFLayoutDiagnostic= record
Kind: THPDFLayoutDiagnosticKind;
PageIndex: Integer;
RelatedPageIndex: Integer;
X: Single;
Y: Single;
Width: Single;
Height: Single;
LineCount: Integer;
Reason: AnsiString;
ElementPath: AnsiString;
RelatedElementPath: AnsiString;
SourceFile: AnsiString;
SourceLine: Integer;
SourceColumn: Integer;
end;
单元
HPDFDoc
字段
| 字段 | 用途 |
|---|---|
Kind | THPDFLayoutDiagnosticKind 事件类别,例如 ldkAutomaticPageBreak 或 ldkKeepWithNext |
PageIndex | 事件发生的页面(从零开始) |
RelatedPageIndex | 跨页事件的配对页面,例如元素拆分到下一页 |
X / Y / Width / Height | 事件涉及的放置矩形,字段含义与 THPDFLayoutBounds 相同 |
LineCount | 涉及的文本行数,例如自动分页前已排版的行数 |
Reason | 说明事件为何被记录的可读文本 |
ElementPath | 事件所属布局元素的路径 |
RelatedElementPath | 重叠和拆分事件中配对元素的路径 |
SourceFile / SourceLine / SourceColumn | 启用源位置捕获时通过 SetDiagnosticSource 捕获的声明位置 |
使用说明
- 诊断启用期间由布局引擎产生这些记录,并通过
THotPDF.GetLayoutDiagnostics、THotPDF.GetLayoutDiagnostic或OnLayoutDiagnostic事件交付 - 用
Kind加ElementPath过滤,Reason可直接显示在日志或问题列表中 - 矩形字段供
THotPDF.DrawLayoutDiagnosticOverlay使用,事件因此可以直接在渲染出的页面上可视化