PDFium Delphi Component 文件

DetectPageSkew 方法

组件: TPdf  ·  单元: PDFium
测量当前页的倾斜程度,扫描页通常如此

Syntax

function DetectPageSkew(out Report: TPdfSkewReport): Boolean;

ReportTPdfSkewReport。接收以度计的 SkewAngle(正值表示顺时针倾斜)、0 到 1 的 Confidence、用于检测的 SampleWidthSampleHeightSucceeded 标志以及 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('Tilted by %.2f degrees', [Report.SkewAngle]);

See Also

TransformPageContent, RenderPageWithMatrix, ApplyOcrSearchLayer, PageRotation