Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
pdftk [Le 18/05/2009, 02:53] Ner0lph |
pdftk [Le 03/11/2022, 12:37] (Version actuelle) 86.234.159.68 [Concaténation] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>Dapper Hardy Intrepid Jaunty pdf}} | + | {{tag>Focal Bionic Xenial pdf bureautique}} |
---- | ---- | ||
Ligne 13: | Ligne 13: | ||
===== Installation ===== | ===== Installation ===== | ||
+ | ==== Après Ubuntu 18.04==== | ||
+ | Il suffit d’[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt>pdftk]]** ou **[[apt>pdftk-java]]** à partir d'Ubuntu 18.10 (réécriture du logiciel pour s'affranchir des dépendances obsolètes). | ||
+ | ====Ubuntu 18.04==== | ||
+ | Pour utiliser pdftk sous Ubuntu 18.04, installer le [[snap]] de pdftk (mais il ne faut pas compter disposer d'une man page avec snap). | ||
- | Il suffit d’[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt://pdftk|pdftk]]**. | + | Autre moyen, installer l'ancienne version avec les dépendances nécessaires. Il faut d'abord installer par les dépôts 18.04 gcc-6-base, puis par gdebi dans l'ordre libgcj-common, libgcj16 et pdftk. Les 3 paquets sont disponibles ici : https://oernst.org/pdftk.zip . |
===== Utilisation ==== | ===== Utilisation ==== | ||
Ligne 29: | Ligne 32: | ||
^ Opérande ^ Signification ^ | ^ Opérande ^ Signification ^ | ||
- | | [[#fusion_concatenation_jointure|cat]] | concaténation, déconcaténation | | + | | [[#concatenation|cat]] | concaténation, déconcaténation | |
| [[#extraction|burst]] | extraction | | | [[#extraction|burst]] | extraction | | ||
| [[#rapports|dump_data]] | extraction des méta-données, marque-pages (signets) et étiquettes de page d’un PDF | | | [[#rapports|dump_data]] | extraction des méta-données, marque-pages (signets) et étiquettes de page d’un PDF | | ||
Ligne 38: | Ligne 41: | ||
| [[#filigrane|background]] | met un document en filigrane (en arrière-plan) d'un autre document | | | [[#filigrane|background]] | met un document en filigrane (en arrière-plan) d'un autre document | | ||
| [[#tampon|stamp]] | tamponne un document avec un autre document (mis au premier-plan) | | | [[#tampon|stamp]] | tamponne un document avec un autre document (mis au premier-plan) | | ||
+ | | [[#tampon|multistamp]] | tamponne un document avec un autre document page à page (mis au premier-plan) | | ||
| generate_fdf | génère un fichier FDF vierge ou avec les valeurs par défaut selon les champs contenu dans le PDF | | | generate_fdf | génère un fichier FDF vierge ou avec les valeurs par défaut selon les champs contenu dans le PDF | | ||
| [[#liste_des_champs_d_un_formulaire|dump_data_fields]] | génère un fichier texte contenant la liste des champs d’un PDF, leur type, leur valeur par défaut, etc. | | | [[#liste_des_champs_d_un_formulaire|dump_data_fields]] | génère un fichier texte contenant la liste des champs d’un PDF, leur type, leur valeur par défaut, etc. | | ||
Ligne 45: | Ligne 49: | ||
===== Quelques exemples ==== | ===== Quelques exemples ==== | ||
- | ==== Fusion, concaténation, jointure ==== | + | ==== Concaténation ==== |
La fusion ou la concaténation de deux fichiers PDF ou plus se fait avec l’opérande **cat** : | La fusion ou la concaténation de deux fichiers PDF ou plus se fait avec l’opérande **cat** : | ||
Ligne 51: | Ligne 55: | ||
pdftk 1.pdf 2.pdf 3.pdf cat output 123.pdf | pdftk 1.pdf 2.pdf 3.pdf cat output 123.pdf | ||
- | ou (avec des alias) : | + | ou, avec des alias (un alias ne peut qu'être une unique lettre majuscule) : |
pdftk A=1.pdf B=2.pdf cat A B output 12.pdf | pdftk A=1.pdf B=2.pdf cat A B output 12.pdf | ||
- | Pour concaténer tous les fichiers PDF du répertoire courant (donc avec les jokers) : | + | Pour concaténer tous les fichiers PDF du répertoire courant (donc avec les jokers) et à condition qu'il n'y ait pas d'espace dans les noms de fichier : |
pdftk *.pdf cat output tous.pdf | pdftk *.pdf cat output tous.pdf | ||
- | |||
Pour concaténer la page 1 puis les pages 5 à 8 d'un premier document puis, par ordre décroissant de la dernière à la page 6 d'un deuxième document : | Pour concaténer la page 1 puis les pages 5 à 8 d'un premier document puis, par ordre décroissant de la dernière à la page 6 d'un deuxième document : | ||
Ligne 66: | Ligne 69: | ||
pdftk A=sécurisé.pdf mon-document.pdf input_pw A=foopass cat output document-combiné.pdf | pdftk A=sécurisé.pdf mon-document.pdf input_pw A=foopass cat output document-combiné.pdf | ||
+ | | ||
+ | Séparer pages paires et impaires | ||
+ | |||
+ | pdftk fichier.pdf cat 1-endeven output fichier-pair.pdf | ||
+ | pdftk fichier.pdf cat 1-endodd output fichier-impair.pdf | ||
+ | |||
==== Déconcaténation ==== | ==== Déconcaténation ==== | ||
- | Sépare les pages sélectionnées depuis de multiples PDF dans un nouveau document : | + | Sépare toutes les pages d'un fichier et les enregistre dans des fichiers différents : |
+ | |||
+ | pdftk document.pdf burst | ||
+ | |||
+ | Sépare les pages de //document.pdf// et les enregistre dans le même dossier en nommant les pages : //pg_0001.pdf, pg_0002.pdf...// | ||
+ | |||
+ | On peut préciser en argument de output l’appellation générique avec par exemple : | ||
+ | |||
+ | pdftk document.pdf burst output copie_no%d.pdf | ||
- | pdftk A=un.pdf B=deux.pdf cat A1-7 B1-5 A8 output nouveau_document.pdf | + | Qui produira en sortie les fichiers : //copie_no1.pdf, copie_no2.pdf...// |
==== Rotations ==== | ==== Rotations ==== | ||
- | Il s’agit de placer après l’intervalle des lettres en capitales représentant les points cardinaux (en anglais) de sorte que le haut de la page sur l'écran corresponde au point cardinal choisi. | + | {{ :divers:120px-simple_compass_rose.svg.png?nolink|Rose des vents}} |
- | {{ :divers:120px-simple_compass_rose.svg.png?nolink |Rose des vents}} | + | Il s’agit de placer après l’intervalle des lettres en capitales représentant les points cardinaux (en anglais) de sorte que le haut de la page d'origine sur l'écran corresponde au point cardinal choisi. |
- | Pivote la première page d’un PDF de 90 degrés dans le sens horaire (donc à l’est, point E) : | + | Pivote la première page d’un PDF de 90 degrés dans le sens horaire (donc à l’est, point east), mais pas les autres pages : |
- | pdftk entrée.pdf cat 1E 2-end output sortie.pdf | + | pdftk entrée.pdf cat 1east 2-end output sortie.pdf |
- | Pivote les pages d'un document PDF entier de 180 degrés (au sud, point S) : | + | Pivote toutes les pages d'un document PDF de 180 degrés (au sud, point S) : |
- | pdftk entrée.pdf cat 1-endS output sortie.pdf | + | pdftk entrée.pdf cat 1-endsouth output sortie.pdf |
==== Sécurité ==== | ==== Sécurité ==== | ||
Ligne 110: | Ligne 127: | ||
==== Compression ==== | ==== Compression ==== | ||
- | Décomprime les flux de page PDF pour modifier le code PDF dans un éditeur de texte : | + | Décomprime les flux de page PDF (utile en particulier pour modifier le code PDF dans un éditeur de texte) : |
pdftk mon-document.pdf output mon-document.décomprimé.pdf uncompress | pdftk mon-document.pdf output mon-document.décomprimé.pdf uncompress | ||
+ | Comprime les flux de page PDF (utile en particulier pour gagner de la place) : | ||
+ | |||
+ | pdftk mon-document.pdf output mon-document.comprimé.pdf compress | ||
+ | |||
+ | <note tip>La commande suivante est beaucoup plus efficace : gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=fichier_reduit.pdf fichier_a_reduire.pdf</note> | ||
+ | | ||
==== Réparation ==== | ==== Réparation ==== | ||
Ligne 130: | Ligne 153: | ||
Pour extraire une seule page d'un document : | Pour extraire une seule page d'un document : | ||
- | pdftk A=mon-document.pdf cat A1 output page1-de-mon-document.pdf | + | pdftk mon-document.pdf cat 1 output page1-de-mon-document.pdf |
Pour extraire plusieurs pages situées les unes à la suite des autres : | Pour extraire plusieurs pages situées les unes à la suite des autres : | ||
- | pdftk A=mon-document.pdf cat A2-5 output pages2-a-5-de-mon-document.pdf | + | pdftk mon-document.pdf cat 2-5 output pages2-a-5-de-mon-document.pdf |
Pour extraire plusieurs pages d'un document et les insérer dans un seul document (pages 6, 2 à 5 et 7 à 9 insérées dans l'ordre 6, 2 à 5, 7 à 9) : | Pour extraire plusieurs pages d'un document et les insérer dans un seul document (pages 6, 2 à 5 et 7 à 9 insérées dans l'ordre 6, 2 à 5, 7 à 9) : | ||
- | pdftk A=mon-document.pdf cat A6 A2-5 A7-9 output pages-de-mon-document.pdf | + | pdftk mon-document.pdf cat 6 2-5 7-9 output pages-de-mon-document.pdf |
Ligne 156: | Ligne 179: | ||
==== Rapports ==== | ==== Rapports ==== | ||
- | Rapporte (extrait) les méta-données, les marque-pages (signets) et les étiquettes de page d’un PDF dans un fichier texte : | + | Extrait les méta-données, les marque-pages (signets) et les étiquettes de page d’un PDF dans un fichier texte : |
pdftk mon-document.pdf dump_data output rapport.txt | pdftk mon-document.pdf dump_data output rapport.txt | ||
Ligne 170: | Ligne 193: | ||
=== Remplir un formulaire PDF === | === Remplir un formulaire PDF === | ||
- | Permet de remplir les champs d’un formulaire PDF avec des données provenant d’un fichier FDF ou d'un fichier XFDF. | + | Permet de remplir les champs d’un formulaire PDF avec des données provenant d’un fichier FDF ou d'un fichier XFDF (XML). |
pdftk document.pdf fill_form données.fdf output document-rempli.pdf | pdftk document.pdf fill_form données.fdf output document-rempli.pdf | ||
Ligne 181: | Ligne 204: | ||
pdftk document.pdf fill_form données.fdf output document-rempli.pdf flatten | pdftk document.pdf fill_form données.fdf output document-rempli.pdf flatten | ||
pdftk document.pdf fill_form données.xfdf output document-rempli.pdf flatten | pdftk document.pdf fill_form données.xfdf output document-rempli.pdf flatten | ||
+ | |||
+ | <note tip>Si le PDF existe déjà, PDFTK le signalera //sur la ligne de commande// et //attendra une réponse//. Utiliser « ''dont_ask'' » en fin de commande permet d'écraser un éventuel fichier existant automatiquement. Exemple : | ||
+ | pdftk document.pdf fill_form données.fdf output document-rempli.pdf dont_ask | ||
+ | </note> | ||
=== Exemple de fichier XFDF === | === Exemple de fichier XFDF === | ||
- | Soit un fichier PDF contenant deux champs de saisie, nommés « ''SAI_Lieu'' » et « ''SAI_Date'' ». Pour (pré-)remplir ces champs de saisie par programmation, le fichier XFDF généré doit avoir au moins la forme suivante : | + | Soit un fichier PDF contenant deux champs de saisie, nommés « ''SAI_Lieu'' » et « ''SAI_Date'' ». Pour (pré-)remplir ces champs de saisie par programmation, le fichier XFDF généré doit au moins avoir la forme suivante et être en UTF-8 : |
- | <code> | + | <code xml> |
<?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | ||
<xfdf xmlns="http://ns.adobe.com/xfdf/" xml:space="preserve"> | <xfdf xmlns="http://ns.adobe.com/xfdf/" xml:space="preserve"> | ||
Ligne 197: | Ligne 224: | ||
</field> | </field> | ||
</fields> | </fields> | ||
- | <f href="fichier.pdf" /> | ||
</xfdf> | </xfdf> | ||
</code> | </code> | ||
Ligne 208: | Ligne 234: | ||
pdftk document.pdf background fond.pdf output sortie.pdf | pdftk document.pdf background fond.pdf output sortie.pdf | ||
+ | | ||
+ | On peut utiliser des fichiers multi-pages si le nombre de pages est identique : | ||
+ | | ||
+ | pdftk document.pdf multibackground fond.pdf output sortie.pdf | ||
=== Tampon === | === Tampon === | ||
- | Permet de tamponner un PDF avec un autre PDF : | + | Permet de tamponner un PDF (document-à-tamponner.pdf) avec un autre PDF (tampon.pdf) : |
pdftk document-à-tamponner.pdf stamp tampon.pdf output document-tamponné.pdf | pdftk document-à-tamponner.pdf stamp tampon.pdf output document-tamponné.pdf | ||
+ | === Tampon multiple === | ||
+ | |||
+ | Permet par exemple de rajouter les numéros de pages à un pdf | ||
+ | |||
+ | pdftk document-à-tamponner.pdf multistamp pages_vierges_avec_numeros_de_page.pdf output document-tamponné.pdf | ||
+ | | ||
+ | ( les pages numérotées peuvent être crées avec un script sous libreoffice) | ||
==== Modifier les méta-données ==== | ==== Modifier les méta-données ==== | ||
- | Permet de modifier ou de mettre à jour les méta-données du PDF, préalablement extraites avec l’opérande « [[#rapport|dump_data]] ». | + | Permet de modifier ou de mettre à jour les méta-données du PDF, préalablement extraites avec l’opérande « [[#rapports|dump_data]] ». |
Il suffit de modifier le fichier « rapport.txt » contenant l’extraction en question, puis de mettre à jour des méta-données du PDF de la manière suivante : | Il suffit de modifier le fichier « rapport.txt » contenant l’extraction en question, puis de mettre à jour des méta-données du PDF de la manière suivante : | ||
Ligne 229: | Ligne 266: | ||
===== Voir aussi ===== | ===== Voir aussi ===== | ||
+ | * **(fr)** [[pdf|La page PDF du wiki Ubuntu-fr]] | ||
* **''(en)''** [[http://www.pdftk.org|Le site officiel]] ([[http://web.archive.org/web/20080211115400/www.accesspdf.com/pdftk/|archive]]) | * **''(en)''** [[http://www.pdftk.org|Le site officiel]] ([[http://web.archive.org/web/20080211115400/www.accesspdf.com/pdftk/|archive]]) | ||
* **''(en)''** [[http://www.accesspdf.com/article.php/20050510131850979|Remplir un formulaire PDF en utilisant une interface HTML]] ([[http://web.archive.org/web/20080211115400/http://www.accesspdf.com/article.php/20050510131850979|archive]]) | * **''(en)''** [[http://www.accesspdf.com/article.php/20050510131850979|Remplir un formulaire PDF en utilisant une interface HTML]] ([[http://web.archive.org/web/20080211115400/http://www.accesspdf.com/article.php/20050510131850979|archive]]) | ||
+ | * **(fr)** [[http://www.it-connect.fr/fusionner-des-pdf-sous-linux-avec-pdftk/|Fusionner des PDF sous Linux avec pdftk : Le tutoriel complet !]] sur IT-Connect | ||
---- | ---- | ||
- | //Contributeurs : [[:utilisateurs:Ner0lph|Floriang]], [[:utilisateurs:ZondeR]].// | + | //Contributeurs principaux : [[:utilisateurs:Floriang]], [[:utilisateurs:ZondeR]], [[:utilisateurs:eagle08]]//. |