Texte brouillé dans les PDF interrogeables pour les scripts non latins
Effectuez une OCR d'un document avec IronOCR, enregistrez-le sous forme de PDF interrogeable, et le texte reconnu peut sembler correct à l'écran mais devient du charabia lorsque vous le copiez ou l'extrayez. Cela se produit lorsque la police du PDF n'a pas de glyphes pour le script que vous avez reconnu, et c'est courant avec les scripts non latins et complexes. La solution est d'enregistrer le PDF avec une police qui prend en charge votre script ; l'exemple ci-dessous utilise le gujarati.
Le texte reconnu n'a pas de caractères correspondants pour s'y associer, donc le texte copié devient brouillé même si l'OCR a correctement lu la page. Une police uniquement latine ne résoudra pas cela : la police que vous fournissez doit couvrir le script que vous avez réellement reconnu.
Prérequis
- IronOCR avec le pack linguistique pour votre script. Cet exemple utilise
OcrLanguage.GujaratiBest. - Une police TrueType qui prend en charge votre script cible. Cet exemple utilise AnekGujarati, disponible gratuitement sur Google Fonts.
- Le chemin complet du fichier vers cette police.
Solution
1. Placez une police qui couvre votre script
Trouvez une police qui inclut les glyphes pour votre script cible, mettez-la sur la machine et notez son chemin complet. Pour l'exemple en gujarati :
C:\Path\To\AnekGujarati-VariableFont_wdth,wght.ttf
Le nom de fichier de police à variables AnekGujarati contient une virgule, donc copiez-le précisément. Le chemin doit pointer vers le fichier de police exact.
2. Passez la police à SaveAsSearchablePdf
Lorsque vous enregistrez le PDF interrogeable, fournissez le chemin vers votre police compatible avec le script en tant que CustomFontFile (3e) argument. Le 4e argument est un label CustomFontName optionnel ; si vous l'omettez, IronOCR utilise le nom même du fichier de police :
ocrResult.SaveAsSearchablePdf(
strOutputFile,
false,
@"C:\Path\To\AnekGujarati-VariableFont_wdth,wght.ttf",
"AnekGujarati");
ocrResult.SaveAsSearchablePdf(
strOutputFile,
false,
@"C:\Path\To\AnekGujarati-VariableFont_wdth,wght.ttf",
"AnekGujarati");
ocrResult.SaveAsSearchablePdf( _
strOutputFile, _
False, _
"C:\Path\To\AnekGujarati-VariableFont_wdth,wght.ttf", _
"AnekGujarati")
L'argument qui corrige l'extraction brouillée est le fichier de police (3e paramètre) : il doit contenir des glyphes pour le script que vous avez OCRisé. Le 4e paramètre ne nomme que la police intégrée et n'affecte pas la cartographie du script. Pour un autre document, pointez le 3e paramètre vers une police qui prend en charge ce script.
3. Confirmez les extraits de texte
Ouvrez le PDF généré et copiez le texte reconnu pour vérifier qu'il s'extrait correctement. S'il apparaît toujours brouillé, la police fournie manque presque certainement de glyphes pour votre script ; revérifiez que la police le couvre réellement.
Remarques
- Pas spécifique au gujarati : tout script non latin ou complexe peut montrer du texte copié brouillé lorsque la police du PDF ne le couvre pas, y compris le devanagari (hindi, marathi), l'arabe, le thaï et le texte chinois, japonais ou coréen.
- Une police par script : fournissez une police qui inclut le script que vous avez reconnu. La famille Noto de Google est une option large, avec des polices par script comme Noto Sans Gujarati, Noto Sans Devanagari, et Noto Sans Arabic.

