Визуальная диагностика layout
HotPDF умеет удерживать ограниченный объём решений layout, обнаруживать перекрытия размещённых элементов, рисовать native векторные overlay, присоединять переданные вызывающим кодом координаты в исходниках и публиковать синхронные уведомления предпросмотра
Безопасные значения по умолчанию
THPDFLayoutDiagnosticOptions.Default удерживает пути элементов, а фиксация координат в исходниках, обнаружение перекрытий, PDF overlay и live callbacks по умолчанию выключены
Ни имя исходного файла, ни содержимое overlay не попадут в сгенерированный 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 удаляет эту привязку
Декларативные продолжения layout копируют привязку, чтобы точка вызова оставалась стабильной при разрыве на страницы
Записи диагностики
THPDFLayoutDiagnostic содержит ElementPath, RelatedElementPath, SourceFile, SourceLine и SourceColumn в дополнение к странице, прямоугольнику, числу строк, типу и причине
ldkOverlap обозначает пересечение двух успешно размещённых элементов, а ldkOverflow — элемент, который не поместился в отведённые границы
Векторные overlay и live preview
Прямоугольники переполнения рисуются красным контуром, прямоугольники перекрытий — оранжевым, а подписи включаются опцией ShowOverlayLabels
Overlay — это native PDF-пути и текст, а не растровые изображения
THPDFLayoutDiagnosticEvent получает каждую удержанную диагностическую запись синхронно после опциональной отрисовки overlay, когда включён LivePreview
Бюджеты и статистика
MaxTrackedBounds ограничивает удерживаемые прямоугольники размещения, а MaxOverlapComparisons — объём работы по проверке пересечений за интервал диагностики
THPDFLayoutDiagnosticStatistics сообщает удержанные и отброшенные диагностические записи, отслеженные и отброшенные границы, сравнения и находки перекрытий, нарисованные overlay и live-уведомления
ClearLayoutDiagnostics сбрасывает записи, отслеживание размещения и все связанные счётчики