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é. Avant toute chose, si un document provient d’une source douteuse, Dangerzone permettra de l’assainir. 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 : 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 : Pour vérifier que toutes les pages ont les mêmes marges : Exemple de sortie : Redimensionnons toutes les pages : Pour fusionner plusieurs fichiers PDF en un seul : Pour extraire une ou plusieurs pages d’un fichier PDF : Syntaxe possible pour extraire des pages à différents emplacements : Exporter les métadonnées actuelles dans le fichier Le contenu du fichier ressemble à ça : Modifier les premières lignes ou ajouter les métadonnées manquantes (parmi : Title, Author, Subject, Keywords, Creator, Producer, CreationDate, ModDate et Trapped) : Générer un nouveau PDF comportant les nouvelles méta-données : Utilisation de l’instance de Framasoft pour Stirling PDF. Émancipation de la section Extraire. Ajout de la section Extraire. Ajout de la section Sécuriser. Ajout des informations sur Stirling-PDF dans l’introduction. Ajout de la section Déprotéger. Déplacement de l’article depuis le blog. Ajout de la section Personnaliser les Méta-données. Premier jet.Sécuriser¶
Déprotéger¶
pdftk 'FILE_SOURCE.pdf' input_pw PROMPT output 'NEW_FILE.pdf'
Orienter¶
pdftk \
'FILE_SOURCE.pdf' \
cat \
1-300 \
301-303left \
304-end \
output \
'NEW_FILE.pdf'
Redimensionner¶
grep --text MediaBox 'FILE_SOURCE.pdf' | sort -u
/MediaBox [0 0 595 842]
/MediaBox [0 0 612 792]
sed 's/MediaBox \[0 0 595.*/MediaBox \[0 0 612 792\]/g' \
'FILE_SOURCE.pdf' \
> 'NEW_FILE.pdf'
Fusionner¶
pdftk \
'FILE_SOURCE_1.pdf' \
'FILE_SOURCE_2.pdf' \
cat \
output \
'NEW_FILE.pdf'
Extraire¶
pdftk 'FILE_SOURCE.pdf' cat 2-5 output 'NEW_FILE.pdf'
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¶
metadata.txt :pdftk 'FILE_SOURCE.pdf' dump_data_utf8 output 'metadata.txt'
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
…
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
…
pdftk 'FILE_SOURCE.pdf' update_info_utf8 'metadata.txt' output 'NEW_FILE.pdf'
📜 Historique¶