function DetectPageSkew(out Report: TPdfSkewReport): Boolean;
| Report | TPdfSkewReport. Receives SkewAngle in degrees (positive means clockwise tilt), Confidence from 0 to 1, the SampleWidth and SampleHeight used for detection, a Succeeded flag, and an ErrorMessage. |
| Result | Boolean. True when an angle was measured, matching Report.Succeeded. |
ページを低解像度でレンダリングし、テキストピクセルを候補回転角に投影して傾き角を検出します。投影が最も鋭い線構造を生む角度が採用されます。精度は約 0.1 度です
Confidence はページが提供したテキスト行の証拠量を反映します。テキストが流れるページは高得点、1 行だけまたは行がないページは低得点となり、低い得点は「傾きなし」ではなく「信頼できる答えなし」として扱うべきです
検出は測定のみです。ページを真っ直ぐにするには、反転した角度を回転マトリックスに与えて TransformPageContent で適用するか、出力のみを補正する場合は RenderPageWithMatrix でレンダリングします
var Report: TPdfSkewReport;
if Pdf.DetectPageSkew(Report) and (Report.Confidence > 0.5) then
ShowMessageFmt('Tilted by %.2f degrees', [Report.SkewAngle]);