Manipulation de fichiers PDF#

PDFtk est un outil puissant pour la manipulation de fichiers PDF.

Il existe aussi un service en ligne, avec possibilité d’auto-hébergement, se nommant Stirling-PDF et qui propose une vaste panoplie d’actions sur les fichiers PDF, comme l’ajout d’une signature ou d’un filigrane, par exemple. Voici une instance disponible : FramaPDF avancé.

Sécuriser#

Avant toute chose, si un document provient d’une source douteuse, Dangerzone permettra de l’assainir.

Déprotéger#

Admettons que le fichier PDF soit protégé par mot de passe, et que celui-ci est connu. Voici comment en faire une copie non protégée :

pdftk 'FILE_SOURCE.pdf' input_pw PROMPT output 'NEW_FILE.pdf'

Orienter#

Pour l’exemple, disons que les pages 301, 302 et 303 du fichier source sont en mode paysage alors que toutes les autres sont en mode portrait. Voici comment réorienter ces 3 pages :

pdftk \
    'FILE_SOURCE.pdf' \
    cat \
    1-300 \
    301-303left \
    304-end \
    output \
    'NEW_FILE.pdf'

Redimensionner#

Pour vérifier que toutes les pages ont les mêmes marges :

grep --text MediaBox 'FILE_SOURCE.pdf' | sort -u

Exemple de sortie :

/MediaBox [0 0 595 842]
/MediaBox [0 0 612 792]

Redimensionnons toutes les pages :

sed 's/MediaBox \[0 0 595.*/MediaBox \[0 0 612 792\]/g' \
    'FILE_SOURCE.pdf' \
    > 'NEW_FILE.pdf'

Fusionner#

Pour fusionner plusieurs fichiers PDF en un seul :

pdftk \
    'FILE_SOURCE_1.pdf' \
    'FILE_SOURCE_2.pdf' \
    cat \
    output \
    'NEW_FILE.pdf'

Extraire#

Pour extraire une ou plusieurs pages d’un fichier PDF :

pdftk 'FILE_SOURCE.pdf' cat 2-5 output 'NEW_FILE.pdf'

Syntaxe possible pour extraire des pages à différents emplacements :

pdftk 'FILE_SOURCE.pdf' cat 2-5 7-10 15-end output 'NEW_FILE.pdf'

Optimiser#

GhostScript permet de réduire grandement le poids du fichier final :

gs \
    -o 'FILE_SOURCE.pdf' \
    -sDEVICE=pdfwrite \
    -dPDFSETTINGS=/prepress \
    -dEmbedAllFonts=true \
    'NEW_FILE.pdf'

Personnaliser les Méta-données#

Exporter les métadonnées actuelles dans le fichier metadata.txt :

pdftk 'FILE_SOURCE.pdf' dump_data_utf8 output 'metadata.txt'

Le contenu du fichier ressemble à ça :

InfoBegin
InfoKey: ModDate
InfoValue: D:20191114220102Z
InfoBegin
InfoKey: Producer
InfoValue: PRODUCTER
PdfID0: d8ec8095099bebfa395c663ac4e4a26e
PdfID1: 6f977277cf1bfe9a5b8c1c60f2ba175d
NumberOfPages: 158
PageMediaBegin
PageMediaNumber: 1
PageMediaRotation: 0
PageMediaRect: 0 8.58 1,057.5 1,696.08
PageMediaDimensions: 1,057.5 1,687.5

Modifier les premières lignes ou ajouter les métadonnées manquantes (parmi : Title, Author, Subject, Keywords, Creator, Producer, CreationDate, ModDate et Trapped) :

InfoBegin
InfoKey: Title
InfoValue: TITLE
InfoBegin
InfoKey: Author
InfoValue: AUTHOR
InfoBegin
InfoKey: CreationDate
InfoValue: D:20191114220102Z
InfoBegin
InfoKey: ModDate
InfoValue: D:20200409101248Z
InfoBegin
InfoKey: Producer
InfoValue: PRODUCTER
PdfID0: d8ec8095099bebfa395c663ac4e4a26e
PdfID1: 6f977277cf1bfe9a5b8c1c60f2ba175d
NumberOfPages: 158
PageMediaBegin
PageMediaNumber: 1
PageMediaRotation: 0
PageMediaRect: 0 8.58 1,057.5 1,696.08
PageMediaDimensions: 1,057.5 1,687.5

Générer un nouveau PDF comportant les nouvelles méta-données :

pdftk 'FILE_SOURCE.pdf' update_info_utf8 'metadata.txt' output 'NEW_FILE.pdf'

📜 Historique#

2026-03-23

Utilisation de l’instance de Framasoft pour Stirling PDF.

Émancipation de la section Extraire.

2025-02-22

Ajout de la section Extraire.

2024-08-30

Ajout de la section Sécuriser.

Ajout des informations sur Stirling-PDF dans l’introduction.

2024-05-14

Ajout de la section Déprotéger.

2024-02-07

Déplacement de l’article depuis le blog.

2020-04-09

Ajout de la section Personnaliser les Méta-données.

2019-12-17

Premier jet.