function DetectPageSkew(out Report: TPdfSkewReport): Boolean;
| Report | TPdfSkewReport. Принимает SkewAngle в градусах (положительное значение означает наклон по часовой стрелке), Confidence от 0 до 1, используемые для обнаружения SampleWidth и SampleHeight, флаг Succeeded и ErrorMessage |
| Result | Boolean. True, когда угол был измерен, что совпадает с Report.Succeeded |
Определяет угол наклона, отрисовывая страницу в низком разрешении и проецируя текстовые пиксели на возможные углы поворота; побеждает угол, чья проекция даёт самую резкую структуру строк. Точность около 0.1 градуса
Confidence отражает, сколько признаков текстовых строк дала страница. Страница сплошного текста получает высокую оценку; страница с одной строкой или без строк — низкую, и низкую оценку следует трактовать как «нет надёжного ответа», а не «нет наклона»
Обнаружение только измеряет. Чтобы выпрямить страницу, подайте инвертированный угол в матрицу поворота и примените её через TransformPageContent либо выполните отрисовку через RenderPageWithMatrix, когда нужно исправить только вывод
var Report: TPdfSkewReport;
if Pdf.DetectPageSkew(Report) and (Report.Confidence > 0.5) then
ShowMessageFmt('Наклон на %.2f градуса', [Report.SkewAngle]);