PDFium Delphi Component Docs

DetectPageSkew Метод

Компонент: TPdf  ·  Модуль: PDFium
Измеряет, насколько текущая страница наклонена, как это обычно бывает у отсканированных страниц

Syntax

function DetectPageSkew(out Report: TPdfSkewReport): Boolean;

ReportTPdfSkewReport. Принимает SkewAngle в градусах (положительное значение означает наклон по часовой стрелке), Confidence от 0 до 1, используемые для обнаружения SampleWidth и SampleHeight, флаг Succeeded и ErrorMessage
ResultBoolean. True, когда угол был измерен, что совпадает с Report.Succeeded

Description

Определяет угол наклона, отрисовывая страницу в низком разрешении и проецируя текстовые пиксели на возможные углы поворота; побеждает угол, чья проекция даёт самую резкую структуру строк. Точность около 0.1 градуса

Confidence отражает, сколько признаков текстовых строк дала страница. Страница сплошного текста получает высокую оценку; страница с одной строкой или без строк — низкую, и низкую оценку следует трактовать как «нет надёжного ответа», а не «нет наклона»

Обнаружение только измеряет. Чтобы выпрямить страницу, подайте инвертированный угол в матрицу поворота и примените её через TransformPageContent либо выполните отрисовку через RenderPageWithMatrix, когда нужно исправить только вывод

Example

var Report: TPdfSkewReport;
if Pdf.DetectPageSkew(Report) and (Report.Confidence > 0.5) then
  ShowMessageFmt('Наклон на %.2f градуса', [Report.SkewAngle]);

See Also

TransformPageContent, RenderPageWithMatrix, ApplyOcrSearchLayer, PageRotation