Ceci est une ancienne révision du document !



PDFTK

PDFTK est un programme en ligne de commande permettant d'effectuer certaines manipulations de documents PDF, comme la mise en arrière-plan, la concaténation, extraction de pages, le remplissage des formulaires, etc.

C’est un logiciel libre sous licence GNU GPL.

Il suffit d’installez le paquet pdftk.

La syntaxe de base de PDFTK est la suivante :

pdftk fichiers_entrants opérande output fichier_sortant

L’opérande correspond à l’action désirée sur les fichiers.

PDFTK ne fonctionne pas avec les formulaires PDF 1.6 (source).

Liste des opérandes

Opérande Signification
cat concaténation, déconcaténation
burst extraction
dump_data extraction des méta-données, marque-pages (signets) et étiquettes de page d’un PDF
uncompress décompression
attach_files inclusion de pièces jointes dans un document PDF
unpack_files extraction de pièces jointes d'un document PDF
fill_form remplissage d’un formulaire PDF avec des données FDF1) ou XFDF2)
background met un document en filigrane (en arrière-plan) d'un autre document
stamp tamponne un document avec un autre document (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
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.
update_info mettre à jour les méta-données

Fusion, concaténation, jointure

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) :

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) :

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 les pages sélectionnées depuis de multiples PDF dans un nouveau document :

pdftk A=un.pdf B=deux.pdf cat A1-7 B1-5 A8 output nouveau_document.pdf

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.

Rose des vents

Pivote la première page d’un PDF de 90 degrés dans le sens horaire (donc à l’est, point E) :

pdftk entrée.pdf cat 1E 2-end output sortie.pdf

Pivote les pages d'un document PDF entier de 180 degrés (au sud, point S) :

pdftk entrée.pdf cat 1-endS 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'utilisateur (à personnaliser).

Déchiffre un PDF :

pdftk chiffré.pdf input_pw mot-de-passe output déchiffré.pdf

Compression

Décomprime les flux de page PDF pour modifier le code PDF dans un éditeur de texte :

pdftk mon-document.pdf output mon-document.décomprimé.pdf uncompress

Réparation

Répare une table XREF corrompue d’un PDF et les longueurs de flux (si possible) 3) :

pdftk cassé.pdf output réparé.pdf

Extraction

De certaines pages d'un document

Il faut utiliser l'opérande « cat ».

Pour extraire une seule page d'un document :

pdftk A=mon-document.pdf cat A1 output page1-de-mon-document.pdf

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

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

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

Rapporte (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

Gestion des formulaires

Liste des champs d’un formulaire

Extrait la liste des champs, et leurs propriétés, d’un formulaire PDF dans un fichier texte :

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.

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 « 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

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 :

<?xml version="1.0" encoding="UTF-8"?>
<xfdf xmlns="http://ns.adobe.com/xfdf/" xml:space="preserve">
    <fields>
        <field name="SAI_Lieu">
            <value>Metz</value>
        </field>
        <field name="SAI_Date">
            <value>12 novembre 2008</value>
        </field>
    </fields>
    <f href="fichier.pdf" />
</xfdf>

Superposition

Filigrane

Permet de mettre un PDF en arrière-plan d’un autre PDF :

pdftk document.pdf background fond.pdf output sortie.pdf

Tampon

Permet de tamponner un PDF avec un autre PDF :

pdftk document-à-tamponner.pdf stamp tampon.pdf output document-tamponné.pdf

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 « 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 :

pdftk document.pdf update_info rapport.txt output document-mis-à-jour.pdf

Pour supprimer cette application, il suffit de 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.


1)
Forms Document Format, format de données de formulaire PDF s’utilisant conjointement avec un document PDF
2)
FDF version XML
3)
Texte anglais original : Repair a PDF's Corrupted XREF Table and Stream Lengths (If Possible)
  • pdftk.1240832657.txt.gz
  • Dernière modification: Le 27/04/2009, 13:44
  • par ZondeR