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