Déplomber un PDF verrouillé
Régulièrement, je reçois des fichiers au format PDF que j'ai ensuite besoin de modifier. C'est, le plus souvent, pour ajouter une signature (ce qui m'évite d'imprimer, de signer et de scanner ce qui est fastidieux et pas vraiment écologique, en plus de perdre le texte intégré au document). Parfois, il s'agit carrément d'éditer le PDF, par exemple pour ajouter (ou retirer) un watermark 1 ou du texte.
Il y a des tas de façons d'éditer un PDF (Acrobat, LibreOffice Draw, Inkscape...) mais le problème qui se pose est de savoir que faire quand le fichier en question est verrouillé. En effet, certaines personnes, pour de bonnes ou mauvaises raisons, "sécurisent" leur PDF en les chiffrant et en les protégeant par mot de passe.
Parfois cela empêche même la lecture sans le mot de passe mais le plus souvent ce genre de protection sert surtout à éviter que l'on bricole le PDF pour le changer. Pas de bol, c'est exactement ce qu'on voudrait faire.
Pour nous sauver la mise, on peut s'appuyer sur deux logiciels bien pratiques : Ghostscript et pdftk.
Avec Ghostscript, on va commencer par générer un PDF identique au fichier initial mais sans aucune protection :
# -q active le mode silencieux, car la sortie est écrite dans un fichier
# -sOutputFile spécifie le fichier PDF de sortie
# -dNOPAUSE traite toutes pages sans s'arrêter
# -dBATCH active le mode batch (plutôt que le mode interactif de ghostscript)
# -f correspond au fichier à déverrouiller
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=unencrypted.pdf -f mon_fichier.pdf
Il est possible d'ajouter d'autres options de Ghostscript si l'on veut. Par exemple, Ghostscript peut optimiser les PDF pour différents media avec l'option -dPDFSETTINGS=/printer
ou -dPDFSETTINGS=/ebook
, ce qui permet de réduire la taille du fichier.
Une fois le fichier déverouillé, il est modifiable avec l'éditeur de son choix. Toutefois, dans mon cas je dois parfois retirer le watermark de toutes les pages pour des PDF qui en contiennent plus d'une centaine. Ce n'est bien sûr pas faisable manuellement mais on peut s'en sortir autrement.
Je décompresse le PDF avec pdftk
pour obtenir ses sources :
pdftk unencrypted.pdf output uncompressed.pdf uncompress
Puis je modifie le fichier avec vim
ou n'importe quel éditeur de texte qui gère le chercher/remplacer. Une fois que j'ai fait la modification souhaitée, j'enregistre le fichier source puis je le recompresse :
pdftk uncompressed.pdf output fichier_modifié.pdf compress
Magie, j'ai maintenant un fichier PDF déverrouillé, sans mot de passe et modifié comme je l'entends.
Pour me simplifier la vie, j'en ai fait un court script bash.
-
ou tatouage numérique en français mais je ne connais personne qui utilise cette locution. En gros, c'est une image qui apparaît en filigrane sur le document (par exemple, SPECIMEN sur des illustrations de billets de banque). ↩