Open source
arabic-pdf-repair : copier à nouveau le texte arabe des anciens PDF
Une bibliothèque et un outil en ligne de commande gratuits et open source, par GenPDF, pour les PDF dont le texte arabe se colle en caractères illisibles comme ÇáÚÑÈíÉ, en carrés ou en mauvaises lettres. Ils ajoutent la correspondance manquante entre chaque glyphe et sa lettre : le texte se copie, se recherche et s’extrait, et les pages restent exactement les mêmes.
Voir le code sur GitHubLe paquet sur npmExemple complet avec un PDF d’essai
Pourquoi le texte arabe copié d’un PDF devient illisible
Un PDF dessine chaque lettre avec une forme tirée d’une police. Pour copier ou rechercher le texte, le lecteur a besoin d’une table dans le fichier, appelée ToUnicode, qui indique quelle lettre représente chaque forme. Beaucoup de PDF arabes créés par d’anciens pilotes d’impression Windows, Ghostscript, PDFCreator ou des logiciels de PAO arabes n’ont pas cette table, ou en ont une fausse.
La page s’affiche correctement, mais le texte copié se colle en lettres latines comme ÇáÚÑÈíÉ, en carrés vides ou en lettres hébraïques ; la recherche ne trouve rien, et l’extraction de texte, les lecteurs d’écran et les outils d’IA lisent n’importe quoi.
Ce qu’elle répare
- Les polices dont les glyphes portent des noms arabes (afii57xxx, afii62xxx, uniFE91, etc.).
- L’arabe rangé à la place de lettres latines : Windows-1256, ISO-8859-6 et Mac Arabic, le texte qui se copie en ÇáÚÑÈíÉ.
- Les polices Diwan XT des logiciels de PAO arabes, y compris leurs copies compactes (CFF).
- Les lettres persanes et ourdoues, et les tables à moitié justes : les entrées correctes sont conservées.
- Les fichiers chiffrés qui s’ouvrent sans mot de passe (RC4, AES-128 et AES-256).
Comment l’utiliser
Avec Node.js 20 ou plus récent, une seule commande répare un fichier et écrit old.repaired.pdf à côté, sans rien installer :
npx arabic-pdf-repair old.pdfDans votre propre code, installez-la depuis npm et passez les octets d’un PDF à repairTextLayer : elle renvoie le fichier réparé, ou null s’il n’y a rien à réparer. La bibliothèque fonctionne aussi dans le navigateur et dans les web workers.
npm install arabic-pdf-repairPuis-je l’utiliser sans risque sur mes fichiers ?
- Les pages restent exactement les mêmes : seule la correspondance entre glyphes et lettres est ajoutée.
- Aucun appel réseau, aucune télémétrie : vos fichiers restent sur votre ordinateur.
- Elle ne modifie une police que si la police ou la page de code prouve ses lettres, et ne devine rien.
- Le fichier d’origine n’est jamais écrasé.
- Les versions sont construites sur GitHub et publiées avec la provenance npm : chacun peut vérifier de quel code vient chaque version.
Ce qu’elle ne fait pas
- Pas d’OCR : une page scannée est une image, sans texte à réparer. Pour lire un scan, utilisez l’OCR de GenPDF.
- Elle ne réordonne pas le texte : l’ordre des mots copiés dépend de votre lecteur PDF.
- Le fichier est réécrit, donc une signature numérique n’est plus valide. Gardez l’original signé.
- Les fichiers qui demandent un mot de passe à l’ouverture sont laissés tels quels.
La même réparation, dans l’éditeur GenPDF
Cette bibliothèque est la réparation de la couche texte que l’éditeur GenPDF applique à l’ouverture d’un fichier, publiée à part. L’éditeur lui-même n’est pas open source. Pour modifier les mots d’un PDF arabe, et pas seulement réparer son texte, ouvrez-le dans l’éditeur GenPDF ou lisez comment modifier du texte arabe dans un PDF.
Licence
Libre d’utilisation, de modification et de partage sous licence Apache 2.0, dans des projets personnels comme commerciaux. Signalez un problème ou proposez une correction sur GitHub.