Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
pdftk [Le 17/05/2012, 21:11]
depann-informatique [Désinstallation]
pdftk [Le 03/11/2022, 12:37] (Version actuelle)
86.234.159.68 [Concaténation]
Ligne 1: Ligne 1:
-{{tag>Dapper Hardy Lucid Maverick Natty 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]]**. +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 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 58: Ligne 62:
  
   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 A=un.pdf B=deux.pdf cat A1-7 B1-5 A8 output ​nouveau_document.pdf+  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 
 + 
 +Qui produira en sortie les fichiers : //​copie_no1.pdf,​ copie_no2.pdf...//​
  
-Sépare/​extrait les pages 1 à 7 du document "​un.pdf"​(document '​A'​),​ les pages 1 à 5 du document "​deux.pdf"​(document '​B'​),​ la page 8 de '​A'​ 
-et les assemble dans cet ordre vers un document "​nouveau_document.pdf"​ 
  
 ==== Rotations ==== ==== Rotations ====
Ligne 82: Ligne 97:
 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. 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), mais pas les autres pages :+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 toutes les pages d'un document PDF 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 116: Ligne 131:
   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 213: 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 ===
Ligne 220: Ligne 245:
   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 231: Ligne 263:
 Pour supprimer cette application,​ il suffit de [[:​tutoriel:​comment_supprimer_un_paquet|supprimer le paquet]] **pdftk**. La configuration de l’application sera conservée ou supprimée selon la méthode de désinstallation que vous choisirez. Pour supprimer cette application,​ il suffit de [[:​tutoriel:​comment_supprimer_un_paquet|supprimer le paquet]] **pdftk**. La configuration de l’application sera conservée ou supprimée selon la méthode de désinstallation que vous choisirez.
  
-Voici un script fonctionnel qui j'​espére vous seras utile. 
  
-<​code>​ 
-#!/bin/bash 
- 
-# ################################################################################​ 
-#                                     ​FONCTION DU SCRIPT 
-#      Ce script sert à concaténer plusieurs fichiers pdf indépendants cryptés ​ 
-# Sauvegardez le script sous le nom Operations_Sur_Fichiers_Pdf 
-# Copiez-le dans le dossier /​usr/​local/​sbin avec les commandes suivantes 
-# sudo cp $(pwd)/​Operations_Sur_Fichiers_Pdf /​usr/​local/​sbin/​Operations_Sur_Fichiers_Pdf 
-# sudo chmod +x /​usr/​local/​sbin/​Operations_Sur_Fichiers_Pdf 
-# ################################################################################​ 
- 
-# ################################################################################​ 
-#                             ​Dépann'​Informatique 2006-2012 
-#                                  Auteur: Eric LAFFRAT 
-#  Si ce script vous a rendu service veuillez me le faire savoir par courriel en  
-#  employant l'​adresse électronique ci-dessous 
-#  informatique.professionnelle@gmx.fr 
-#  Fabrication le 17/05/2012 à 09h 30 
-#     ​Finition le 17/05/2012 à 18h 20 
-#  Script testé sur des fichiers pdf cryptés sans espace dans le nom de fichier 
-#  Les fichiers étaient dans un ordre numérique ascendant 
-# ################################################################################​ 
- 
-# Effacement de l'​écran de travail 
-reset 
- 
-# Condition de fonctionnalité : 
-# Si pdfcrack n'est pas installé forcage de l'​installation 
-if [ -z "`dpkg --get-selections pdfcrack`"​ ]; then 
-echo -e "​\n\nVEUILLEZ INSTALLER LE PAQUET PDFCRACK"​ 
-echo "​Entrez votre mot de passe" 
-sudo apt-get -y -qq install pdfcrack>/​dev/​null 
- 
-# Si pdfcrack est installé afficher une information positive 
-if [ -n "`dpkg --get-selections pdfcrack`"​ ]; then 
-echo -e "​\n\nLe paquet pdfcrack est installé"​ 
- 
-# Le programme continue sa course 
-else 
- 
-# Si pdfcrack n'est pas installé afficher une information négative 
-echo -e "​\n\nLe paquet pdfcrack est toujours pas installé"​ 
- 
-# Mettre fin au script au cas où l'​utilisateur mettrait fin volontairement au script ​ 
-# Soit par oubli du mot de passe ou pour faute de frappe ou par jeu 
-exit 
-fi 
-fi 
- 
-# Affectation du paramètre "​$*"​ à la variable NomMisEnParametre 
-# "​$*"​ = Tous les paramètres de position (en un seul mot) 
-NomMisEnParametre="​$*"​ 
- 
-# Si le paramètre $* est vide afficher une information 
-if [ -z "​$NomMisEnParametre"​ ]; then echo -e "​\n\nVeuillez mettre un nom de fichier sans l'​extension si possible";​ fi 
- 
-# Enléve tous les espaces du nom 
-NomMisEnParametre=`echo $NomMisEnParametre|sed 's/ /_/g'` 
- 
-# Obtenir le nom du fichier sans son extension 
-NomMisEnParametre=`echo $NomMisEnParametre|cut -f1 -d.` 
- 
-# Informer l'​utilisateur du changement opéré 
-echo -e "​\n\nVoici le nom de votre fichier reformaté $NomMisEnParametre"​ 
- 
-# Obtenir le dossier actuel 
-DossierExploite=`pwd` 
- 
- 
-# Informer l'​utilisateur de ce qu'il va se passer 
-echo -e "​\n\nDonne à tous les fichiers le mode 777" 
-sudo chmod 777 $DossierExploite/​* 
-echo -e "​\n\nFin de la commande: sudo chmod 777 $DossierExploite/​*"​ 
- 
-# OBTENIR LE MOT DE PASSE DE CHAQUE FICHIER PDF 
- 
-# Initialisation de la variable NFichier 
-NFichier=0 
- 
-# La commande ls -d $DossierExploite/​*.pdf donne les informations suivantes: /​Nom_Du_Dossier/​Nom_De_Fichier.Extension 
-for FichierListes in `ls -d $DossierExploite/​*.pdf`;​ do 
- 
-# Concaténation de la variable NFichier càd NFichier=1 une premiére fois puis NFichier=2 ect  
-NFichier=$[$NFichier+1] 
- 
-# Enregistrer chaque mot de passe dans un tableau 
-MdpP[$NFichier]=`pdfcrack -o -q $FichierListes 2>/​dev/​null|grep owner-password|cut -f3 -d' '|sed '​s/'​\''//​g'​` 
- 
-# Fin de la boucle 
-done 
- 
-# Créer un dossier temporaire 
-DossierTemporaire=`mktemp -d` 
- 
-# Initialisation de la variable NFichier 
-NFichier=0 
- 
-# La commande ls -d $DossierExploite/​*.pdf donne les informations suivantes: /​Nom_Du_Dossier/​Nom_De_Fichier.Extension 
-for FichierListes in `ls -d $DossierExploite/​*.pdf`;​ do 
- 
-# Concaténation de la variable NFichier càd NFichier=1 une premiére fois puis NFichier=2 ect  
-NFichier=$[$NFichier+1] 
- 
-# Obtenir le nom de base du fichier à décrypter pour pouvoir le mettre dans $DossierTemporaire 
-FichierADecrypter=`basename $FichierListes` 
- 
-# Exécution effective de pdftk avec en argument le Mot De Passe de chaque fichier puis les enregistre dans $DossierTemporaire 
-pdftk $FichierListes input_pw "​${MdpP[$NFichier]}"​ output $DossierTemporaire/​$FichierADecrypter 
-done 
- 
-# La variable TousLesFichiersPdf reçois la liste des fichiers contenu dans $DossierTemporaire 
-TousLesFichiersPdf=`ls -d $DossierTemporaire/​*.pdf` 
- 
-# pdftk rassemble tous les fichiers pdf en un seul fichier pdf 
-pdftk $(echo $TousLesFichiersPdf) cat output $DossierExploite/​$NomMisEnParametre.pdf 
- 
-# Copie des fichiers décryptés vers le dossier de travail 
-cp  $(echo $TousLesFichiersPdf) $DossierExploite 
- 
- 
-# Nettoyage avant sortie 
-/bin/rm -Rf $DossierTemporaire 
-# for FichierListes in `ls $DossierExploite/​*.pdf|grep -v $DossierExploite/​$NomMisEnParametre.pdf`;​ do /bin/rm $FichierListes;​ done 
- 
-exit 1; 
-</​code>​ 
 ===== 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 principaux : [[:​utilisateurs:​Floriang]],​ [[:​utilisateurs:​ZondeR]].//+//​Contributeurs principaux : [[:​utilisateurs:​Floriang]],​ [[:​utilisateurs:​ZondeR]], [[:​utilisateurs:​eagle08]]//.
  • pdftk.1337281888.txt.gz
  • Dernière modification: Le 17/05/2012, 21:11
  • par depann-informatique