PDFium Delphi Component Docs

DetectPageSkew Méthode

Composant: TPdf  ·  Unit: PDFium
Mesure de combien la page courante est inclinée, comme le sont généralement les pages numérisées

Syntax

function DetectPageSkew(out Report: TPdfSkewReport): Boolean;

ReportTPdfSkewReport. Reçoit SkewAngle en degrés (positif signifie une inclinaison dans le sens horaire), Confidence de 0 à 1, les SampleWidth et SampleHeight utilisés pour la détection, un drapeau Succeeded et un ErrorMessage
ResultBoolean. True lorsqu'un angle a été mesuré, correspondant à Report.Succeeded

Description

Détecte l'angle d'inclinaison en rendant la page à basse résolution et en projetant les pixels de texte sur des angles de rotation candidats ; l'angle dont la projection produit la structure de lignes la plus nette l'emporte. La précision est d'environ 0.1 degré

Confidence reflète combien d'indices de lignes de texte la page a offerts. Une page de texte courant obtient un score élevé ; une page avec une seule ligne ou aucune obtient un score faible, et un score faible doit être traité comme « pas de réponse fiable » plutôt que « pas d'inclinaison »

La détection ne fait que mesurer. Pour redresser la page, injectez l'angle inversé dans une matrice de rotation et appliquez-la avec TransformPageContent, ou rendez via RenderPageWithMatrix lorsque seule la sortie doit être corrigée

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