Запись THPDFLayoutDiagnostic
Одно структурированное событие layout: что произошло и почему, затронутые страница и прямоугольник, число строк, пути элементов и опциональное положение элемента в исходном коде
Объявление
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 | Путь элемента layout, к которому относится событие |
RelatedElementPath | Путь парного элемента для событий перекрытия и разбиения |
SourceFile / SourceLine / SourceColumn | Место объявления, зафиксированное через SetDiagnosticSource, когда включена фиксация координат в исходниках |
Примечания по использованию
- Записи порождаются движком layout, пока диагностика включена, и доставляются через
THotPDF.GetLayoutDiagnostics,THotPDF.GetLayoutDiagnosticили событиеOnLayoutDiagnostic - Фильтруйте по
KindиElementPath, аReasonиспользуйте для прямого вывода в журналах или списках проблем - Поля прямоугольника питают
THotPDF.DrawLayoutDiagnosticOverlay, поэтому события можно визуализировать прямо на отрисованной странице