Le format PDF a été conçu pour créer des documents finis qui n’ont pas lieu d’être modifiés (en vue d’une impression ou d’un affichage sur écran). Cependant, selon les cas de figure, on peut être amenés à effectuer certaines modifications. Il existe nombre de cas de figure et nous en présentons quelques-uns ici, avec des logiciels libres et des méthodes pour modifier un document. Tous les logiciels cités sont libres et disponibles en paquets Debian et Ubuntu. Utilisez votre gestionnaire de paquets (Synaptic) pour les installer.
PDF, un format ouvert
Le Portable Document Format (communément abrégé en PDF) est un langage de description de pages d’impression créé par Adobe Systems. La spécificité du PDF est de préserver la mise en forme (polices d’écritures, images, objets graphiques…) telle qu’elle a été définie par son auteur, et ce quelles que soient l’application et la plate-forme utilisées pour imprimer ou visualiser ledit fichier (source Wikipédia). PDF est un format ouvert, les spécifications sont publiques et disponibles sur le site d’Adobe. C’est un format de document final, c’est-à-dire, destiné à être utilisé tel quel (affichage, impression). Il n’est pas prévu que les documents PDF soient modifiables comme peuvent l’être les documents au format OpenDocument ou Scribus. De nombreux logiciels sont capables d’exporter des documents dans ce format. OpenOffice.org, LibreOffice, Scribus, mais aussi via des sites Web. En effet, il existe des API (interfaces de programmation d’applications) pour différents langages, permettant de manipuler du PDF. En Perl notamment, il existe une multitude d’API concernant PDF sur CPAN. En PHP vous disposez des bibliothèques FPDF et PDFlib. Même si le format PDF n’est pas prévu pour la modification de son contenu, il existe de nombreux outils capables d’agir sur des documents PDF.
Que contient un document PDF ?
Avant de chercher à modifier le contenu, il est bon de se poser la question de sa nature. PDF décrit un format vectoriel (tout comme son ancêtre PostScript). Cependant, tout format vectoriel peut contenir des images matricielles. De même, certaines formes vectorielles seront plus facilement exploitables que d’autres (les textes par exemple). Imaginons plusieurs cas de figure.
Scan
Vous scannez un document et l’enregistrez au format PDF. Même si le document scanné ne contient que du texte, le résultat numérique ne sera que de l’image, une image unique dans laquelle le texte y est dessiné. Si vous souhaitez obtenir un texte numérique, il faudra utiliser un logiciel de reconnaissance de caractères (OCR). En libre, il existe Gocr, Tesseract, et d’autres. L’avantage de Tesseract est qu’il permet de spécifier la langue du texte à reconnaître. Ce qui donne de meilleurs résultats. Cependant, le résultat dépend également de la qualité du scan, des fontes utilisées. Il semble qu’il y ait possibilité d’éduquer Tesseract pour reconnaître plus facilement ce qu’il a déjà reconnu. Si vous souhaitez seulement appliquer de menues modifications, il faudra utiliser un logiciel de retouche d’images comme GIMP.
Document généré par un logiciel
Pour ce qui est du texte, il y a deux possibilités. Soit le texte a été vectorisé, c’est-à-dire, transformé en courbes (l’aspect reste inchangé) et dans ce cas, vous n’avez pas de texte mais des dessins, dont la modification s’avère difficile, voire rebutante. Soit le texte est bien inséré en tant que texte (des lettres, des chiffres, des signes de ponctuation, etc.). Dans ce cas-là, le texte est effectivement modifiable. Vient ensuite le problème de la fonte utilisée. Si cette dernière est intégrée, vous verrez le document s’afficher correctement (mais pas forcément pour le modifier). Si elle n’est pas intégrée et que vous ne disposez pas de la fonte sur votre ordinateur, l’affichage du texte variera entre le remplacement arbitraire par une autre fonte (donc, altération totale de la nature du document) et pas d’affichage du tout. Pour connaître les noms exacts des fontes utilisées (et se les procurer par ailleurs si besoin et si possible), affichez les propriétés d’un document PDF (dans Evince, le lecteur PDF de Gnome) vous donnera cette liste. En ligne de commande, l’outil pdffonts
produit également cette liste avec plus d’informations.