Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
pdftk [Le 13/12/2014, 18:40] – trusty YannUbuntu | pdftk [Le 18/02/2021, 21:37] (Version actuelle) – 193.250.137.203 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{tag> | ||
+ | ---- | ||
+ | |||
+ | {{ http:// | ||
+ | {{ http:// | ||
+ | |||
+ | ====== PDFTK ====== | ||
+ | |||
+ | **PDFTK** est un programme en ligne de commande permettant d' | ||
+ | |||
+ | C’est un logiciel libre sous licence **[[wpfr> | ||
+ | |||
+ | ===== Installation ===== | ||
+ | ==== Après Ubuntu 18.04==== | ||
+ | Il suffit d’[[: | ||
+ | ====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). | ||
+ | |||
+ | Autre moyen, installer l' | ||
+ | ===== Utilisation ==== | ||
+ | |||
+ | La syntaxe de base de PDFTK est la suivante : | ||
+ | |||
+ | pdftk fichiers_entrants opérande output fichier_sortant | ||
+ | |||
+ | L’// | ||
+ | |||
+ | <note help> | ||
+ | |||
+ | ==== Liste des opérandes ==== | ||
+ | |||
+ | ^ Opérande ^ Signification ^ | ||
+ | | [[# | ||
+ | | [[# | ||
+ | | [[# | ||
+ | | [[# | ||
+ | | attach_files | inclusion de pièces jointes dans un document PDF | | ||
+ | | unpack_files | extraction de pièces jointes d'un document PDF | | ||
+ | | [[# | ||
+ | | [[# | ||
+ | | [[# | ||
+ | | [[# | ||
+ | | generate_fdf | génère un fichier FDF vierge ou avec les valeurs par défaut selon les champs contenu dans le PDF | | ||
+ | | [[# | ||
+ | | [[# | ||
+ | |||
+ | |||
+ | ===== Quelques exemples ==== | ||
+ | |||
+ | ==== Concaténation ==== | ||
+ | |||
+ | La fusion ou la concaténation de deux fichiers PDF ou plus se fait avec l’opérande **cat** : | ||
+ | |||
+ | pdftk 1.pdf 2.pdf 3.pdf cat output 123.pdf | ||
+ | |||
+ | ou, avec des alias (un alias ne peut qu' | ||
+ | |||
+ | 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) et à condition qu'il n'y ait pas d' | ||
+ | |||
+ | 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 : | ||
+ | |||
+ | pdftk A=premier.pdf B=deuxième.pdf cat A1 A5-8 Bend-6 output fichier-final.pdf | ||
+ | |||
+ | Joint deux fichiers dont l’un est crypté (la sortie ne l’est pas) : | ||
+ | |||
+ | pdftk A=sécurisé.pdf mon-document.pdf input_pw A=foopass cat output document-combiné.pdf | ||
+ | |||
+ | ==== Déconcaténation ==== | ||
+ | |||
+ | 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 // | ||
+ | |||
+ | 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 | ||
+ | |||
+ | Qui produira en sortie les fichiers : // | ||
+ | |||
+ | |||
+ | ==== 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 d' | ||
+ | |||
+ | 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 1east 2-end output sortie.pdf | ||
+ | |||
+ | Pivote toutes les pages d'un document PDF de 180 degrés (au sud, point S) : | ||
+ | |||
+ | pdftk entrée.pdf cat 1-endsouth output sortie.pdf | ||
+ | |||
+ | ==== Sécurité ==== | ||
+ | |||
+ | Chiffrer un document PDF avec une clé de 128 bits et retirer tous les droits (par défaut) : | ||
+ | |||
+ | pdftk mon-document.pdf output mon-document-chiffré.128.pdf owner_pw mdp1 | ||
+ | |||
+ | Idem que ci-dessus sauf qu’un mot de passe est requis pour ouvrir le PDF : | ||
+ | |||
+ | pdftk mon-document.pdf output mon-document-chiffré.128.pdf owner_pw mdp1 user_pw mdp2 | ||
+ | |||
+ | Idem que ci-dessus mais en autorisant l’impression (après l’ouverture du PDF) : | ||
+ | |||
+ | pdftk mon-document.pdf output mon-document-chiffré.128.pdf owner_pw mdp1 user_pw mdp2 allow printing | ||
+ | |||
+ | où « mdp1 » est le mot de passe du propriétaire du PDF et « mdp2 » le mot de passe de l' | ||
+ | |||
+ | Déchiffre un PDF : | ||
+ | |||
+ | pdftk chiffré.pdf input_pw mot-de-passe output déchiffré.pdf | ||
+ | |||
+ | ==== Compression ==== | ||
+ | |||
+ | 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 | ||
+ | |||
+ | 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</ | ||
+ | | ||
+ | ==== Réparation ==== | ||
+ | |||
+ | Répare une table XREF corrompue d’un PDF et les longueurs de flux (si possible) | ||
+ | ((Texte anglais original : //Repair a PDF's Corrupted XREF Table and Stream Lengths (If Possible)// | ||
+ | |||
+ | pdftk cassé.pdf output réparé.pdf | ||
+ | |||
+ | |||
+ | ==== Extraction ==== | ||
+ | |||
+ | === De certaines pages d'un document === | ||
+ | |||
+ | Il faut utiliser l' | ||
+ | |||
+ | Pour extraire une seule page d'un document : | ||
+ | |||
+ | pdftk mon-document.pdf cat 1 output page1-de-mon-document.pdf | ||
+ | |||
+ | Pour extraire plusieurs pages situées les unes à la suite des autres : | ||
+ | |||
+ | 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' | ||
+ | |||
+ | pdftk mon-document.pdf cat 6 2-5 7-9 output pages-de-mon-document.pdf | ||
+ | |||
+ | |||
+ | === De toutes les pages d’un document === | ||
+ | |||
+ | On utilise l’opérande « burst ». | ||
+ | |||
+ | Pour extraire chaque page d’un document et reporter les données dans un fichier « doc_data.txt » : | ||
+ | |||
+ | pdftk mon-document.pdf burst | ||
+ | |||
+ | Pour extraire chaque page d’un document dans des fichiers dont le nom commencera par le numéro de la page codé sur 5 chiffres : | ||
+ | |||
+ | pdftk mon-document.pdf burst output %05d_fichiers_extraits.pdf | ||
+ | |||
+ | |||
+ | ==== Rapports ==== | ||
+ | |||
+ | Extrait les méta-données, | ||
+ | |||
+ | pdftk mon-document.pdf dump_data output rapport.txt | ||
+ | |||
+ | ==== Gestion des formulaires ==== | ||
+ | |||
+ | === Liste des champs d’un formulaire === | ||
+ | |||
+ | Extrait la liste des champs, et leurs propriétés, | ||
+ | |||
+ | pdftk mon-document.pdf dump_data_fields output liste_des_champs.txt | ||
+ | |||
+ | === 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 (XML). | ||
+ | |||
+ | pdftk document.pdf fill_form données.fdf output document-rempli.pdf | ||
+ | pdftk document.pdf fill_form données.xfdf output document-rempli.pdf | ||
+ | |||
+ | Les champs seront toujours modifiables (mais pré-remplis). | ||
+ | |||
+ | Pour rendre les champs non modifiables (c’est-à-dire « aplatir » le PDF), il faut utiliser l’option « '' | ||
+ | |||
+ | 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 | ||
+ | |||
+ | <note tip>Si le PDF existe déjà, PDFTK le signalera //sur la ligne de commande// et //attendra une réponse//. Utiliser « '' | ||
+ | pdftk document.pdf fill_form données.fdf output document-rempli.pdf dont_ask | ||
+ | </ | ||
+ | |||
+ | === Exemple de fichier XFDF === | ||
+ | |||
+ | Soit un fichier PDF contenant deux champs de saisie, nommés « '' | ||
+ | |||
+ | <code xml> | ||
+ | <?xml version=" | ||
+ | <xfdf xmlns=" | ||
+ | < | ||
+ | <field name=" | ||
+ | < | ||
+ | </ | ||
+ | <field name=" | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ==== Superposition ==== | ||
+ | |||
+ | === Filigrane === | ||
+ | |||
+ | Permet de mettre un PDF en arrière-plan d’un autre 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 === | ||
+ | |||
+ | 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 | ||
+ | |||
+ | === Tampon multiple === | ||
+ | |||
+ | | ||
+ | |||
+ | 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 ==== | ||
+ | |||
+ | Permet de modifier ou de mettre à jour les méta-données du PDF, préalablement extraites avec l’opérande « [[# | ||
+ | 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 : | ||
+ | |||
+ | pdftk document.pdf update_info rapport.txt output document-mis-à-jour.pdf | ||
+ | |||
+ | ===== Désinstallation ===== | ||
+ | |||
+ | Pour supprimer cette application, | ||
+ | |||
+ | |||
+ | ===== Voir aussi ===== | ||
+ | |||
+ | * **(fr)** [[pdf|La page PDF du wiki Ubuntu-fr]] | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **(fr)** [[http:// | ||
+ | |||
+ | ---- | ||
+ | |||
+ | // |