PDFiumPas 文件

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