function DetectPageSkew(out Report: TPdfSkewReport): Boolean;
| Report | TPdfSkewReport. Empfängt SkewAngle in Grad (positiv bedeutet Neigung im Uhrzeigersinn), Confidence von 0 bis 1, die für die Erkennung verwendeten SampleWidth und SampleHeight, ein Succeeded-Flag und eine ErrorMessage. |
| Result | Boolean. True, wenn ein Winkel gemessen wurde, entsprechend Report.Succeeded. |
Erkennt den Neigungswinkel, indem die Seite mit niedriger Auflösung gerendert und die Textpixel auf Kandidaten-Rotationswinkel projiziert werden; der Winkel, dessen Projektion die schärfste Linienstruktur ergibt, gewinnt. Die Genauigkeit beträgt etwa 0,1 Grad
Confidence spiegelt wider, wie viel Textzeilen-Evidenz die Seite bot. Eine Seite mit Fließtext erzielt einen hohen Wert; eine Seite mit nur einer Zeile oder ohne Text erzielt einen niedrigen Wert, und ein niedriger Wert sollte als "keine verlässliche Antwort" und nicht als "keine Neigung" behandelt werden
Die Erkennung misst nur. Um die Seite zu begradigen, geben Sie den negierten Winkel in eine Rotationsmatrix ein und wenden ihn mit TransformPageContent an, oder rendern Sie über RenderPageWithMatrix, wenn nur die Ausgabe korrigiert werden muss
var Report: TPdfSkewReport;
if Pdf.DetectPageSkew(Report) and (Report.Confidence > 0.5) then
ShowMessageFmt('Tilted by %.2f degrees', [Report.SkewAngle]);