Comment changer du texte dans tout un fichier pdf
Un client m’a demandé une présentation que j’ai donnée il y a quelques mois. Je cherche, mais je ne trouve plus l’original, uniquement un fichier pdf dans un mail. Je l’ouvre et je remarque que sur toutes les pages, j’ai mis mon adresse email et mon numéro de téléphone – malheureusement les deux ont changé… Quoi faire?
Il y a certainement des outils graphiques et payants qui permettent d’éditer les fichiers pdf. Je me rappelle vaguement qu’avec Acrobat Pro on peut changer des textes, mais pas dans le fichier en entier.
Comme je travaille sur une machine Linux et que j’ai une grande affinité avec la ligne de commande, voici comment substituer ou effacer un texte dans un fichier pdf :
Procédure pour modifier le fichier pdf depuis une ligne de commande
Procurez-vous de l’outil pdftk pour votre plateforme
- Linux p.ex. : sudo apt-get install gs pdftk
- Windows: https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/
- Max OS: je n’ai pas testé, mais Google – pdftk pour OSX est votre ami 🙂
Décompresser
La plupart des fichiers pdf sont compressés. Avant de modifier le fichier il faut donc le décompresser avec la commande suivante:
pdftk inputfile.pdf output uncompressed.pdf uncompress
Le fichier en entrée s’appelle « inputfile.pdf » ici et le fichier décompressé en sortie « uncompressed.pdf »
Modifier
Prenez votre éditeur de texte préféré pour remplacer le texte dans le fichier. Sous Windows, Notepad fait l’affaire, Notepad++ est mieux, mais Word p.ex. ne marche pas très bien si vous ne maîtrisez pas les fichiers sans formatage. Par précaution, sauvegardez le fichier modifié sous un autre nom, p.ex. modifie.pdf
Sous Linux, le stream editor sed fait cela très efficacement avec la commande de substitution « s/old/new/ » et le flag « /g » pour une substitution globale:
sed -e "s/ancien/nouveau/g" <uncompressed.pdf >modifie.pdf
Réparer
Le fichier ainsi modifié est « corrompu » d’un point de vue logique et il faut le réparer. De plus, pour économiser la place, on va le compresser de nouveau:
pdftk modifie.pdf output final.pdf compress
et voilà, mon fichier est prêt pour l’envoi!