{"id":7008,"date":"2024-07-10T12:06:49","date_gmt":"2024-07-10T12:06:49","guid":{"rendered":"https:\/\/hengowebsite.luong.fr\/?page_id=7008"},"modified":"2024-07-10T12:06:49","modified_gmt":"2024-07-10T12:06:49","slug":"pdftk-concatenation-extraction-de-pages-le-remplissage-des-formulaires","status":"publish","type":"page","link":"https:\/\/hengowebsite.luong.fr\/?page_id=7008","title":{"rendered":"PDFTK (concat\u00e9nation, extraction de pages, le remplissage des formulaires)"},"content":{"rendered":"<hr>\n<p><img decoding=\"async\" class=\"mediaright img-responsive\" src=\"https:\/\/doc.ubuntu-fr.org\/lib\/exe\/fetch.php?w=144&amp;tok=f8d339&amp;media=http%3A%2F%2Fwww.accesspdf.com%2Fpdftk%2Fpdftk_heading.gif\" alt=\"\" width=\"144\"> <img decoding=\"async\" class=\"mediaright img-responsive\" src=\"https:\/\/doc.ubuntu-fr.org\/lib\/exe\/fetch.php?w=56&amp;tok=d157cc&amp;media=http%3A%2F%2Fwww.accesspdf.com%2Fpdftk%2Fsledgehammer.gif\" alt=\"\" width=\"56\"><\/p>\n<h1 id=\"pdftk\" class=\"sectionedit1 page-header\">PDFTK<\/h1>\n<div class=\"level1\">\n<p><strong>PDFTK<\/strong> est un programme en ligne de commande permettant d&rsquo;effectuer certaines manipulations de documents PDF, comme la mise en arri\u00e8re-plan, la concat\u00e9nation, extraction de pages, le remplissage des formulaires, etc.<\/p>\n<p>C\u2019est un logiciel libre sous licence <strong><a class=\"interwiki iw_wpfr\" title=\"https:\/\/fr.wikipedia.org\/wiki\/Licence_publique_g\u00e9n\u00e9rale_GNU\" href=\"https:\/\/fr.wikipedia.org\/wiki\/Licence_publique_g\u00e9n\u00e9rale_GNU\">GNU GPL<\/a><\/strong>.<\/p>\n<\/div>\n<div class=\"secedit editbutton_section editbutton_1\">\n<form class=\"button btn_secedit form-inline\" action=\"\/pdftk\" method=\"post\">\n<div class=\"no\">&nbsp;<\/div>\n<\/form>\n<\/div>\n<h2 id=\"installation\" class=\"sectionedit2 page-header\">Installation<\/h2>\n<div class=\"level2\">&nbsp;<\/div>\n<div class=\"secedit editbutton_section editbutton_2\">\n<form class=\"button btn_secedit form-inline\" action=\"\/pdftk\" method=\"post\">\n<div class=\"no\">&nbsp;<\/div>\n<\/form>\n<\/div>\n<h3 id=\"apres_ubuntu_1804\" class=\"sectionedit3\">Apr\u00e8s Ubuntu 18.04<\/h3>\n<div class=\"level3\">\n<p>Il suffit d\u2019<a class=\"wikilink1\" title=\"tutoriel:comment_installer_un_paquet\" href=\"https:\/\/doc.ubuntu-fr.org\/tutoriel\/comment_installer_un_paquet\">installer le paquet<\/a> <strong><a class=\"interwiki iw_apt\" title=\"apt:\/\/pdftk\" href=\"apt:\/\/pdftk\">pdftk<\/a><\/strong> ou <strong><a class=\"interwiki iw_apt\" title=\"apt:\/\/pdftk-java\" href=\"apt:\/\/pdftk-java\">pdftk-java<\/a><\/strong> \u00e0 partir d&rsquo;Ubuntu 18.10 (r\u00e9\u00e9criture du logiciel pour s&rsquo;affranchir des d\u00e9pendances obsol\u00e8tes).<\/p>\n<\/div>\n<div class=\"secedit editbutton_section editbutton_3\">\n<form class=\"button btn_secedit form-inline\" action=\"\/pdftk\" method=\"post\">\n<div class=\"no\">&nbsp;<\/div>\n<\/form>\n<\/div>\n<h3 id=\"ubuntu_1804\" class=\"sectionedit4\">Ubuntu 18.04<\/h3>\n<div class=\"level3\">\n<p>Pour utiliser pdftk sous Ubuntu 18.04, installer le <a class=\"wikilink1\" title=\"snap\" href=\"https:\/\/doc.ubuntu-fr.org\/snap\">snap<\/a> de pdftk (mais il ne faut pas compter disposer d&rsquo;une man page avec snap).<\/p>\n<p>Autre moyen, installer l&rsquo;ancienne version avec les d\u00e9pendances n\u00e9cessaires. Il faut d&rsquo;abord installer par les d\u00e9p\u00f4ts 18.04 gcc-6-base, puis par gdebi dans l&rsquo;ordre libgcj-common, libgcj16 et pdftk. Les 3 paquets sont disponibles ici : <a class=\"urlextern\" title=\"https:\/\/oernst.org\/pdftk.zip\" href=\"https:\/\/oernst.org\/pdftk.zip\" rel=\"nofollow\">https:\/\/oernst.org\/pdftk.zip<\/a> .<\/p>\n<\/div>\n<div class=\"secedit editbutton_section editbutton_4\">\n<form class=\"button btn_secedit form-inline\" action=\"\/pdftk\" method=\"post\">\n<div class=\"no\">&nbsp;<\/div>\n<\/form>\n<\/div>\n<h2 id=\"utilisation\" class=\"sectionedit5 page-header\">Utilisation<\/h2>\n<div class=\"level2\">\n<p>La syntaxe de base de PDFTK est la suivante :<\/p>\n<pre class=\"code\">pdftk fichiers_entrants op\u00e9rande output fichier_sortant<\/pre>\n<p>L\u2019<em>op\u00e9rande<\/em> correspond \u00e0 l\u2019action d\u00e9sir\u00e9e sur les fichiers.<\/p>\n<div class=\"noteclassic\">PDFTK ne fonctionne pas avec les formulaires PDF en version 1.6 (<a class=\"urlextern\" title=\"http:\/\/web.archive.org\/web\/20080211115400\/http:\/\/www.accesspdf.com\/article.php\/20050708071835171\" href=\"http:\/\/web.archive.org\/web\/20080211115400\/http:\/\/www.accesspdf.com\/article.php\/20050708071835171\" rel=\"nofollow\">source<\/a>).<\/div>\n<\/div>\n<div class=\"secedit editbutton_section editbutton_5\">\n<form class=\"button btn_secedit form-inline\" action=\"\/pdftk\" method=\"post\">\n<div class=\"no\">&nbsp;<\/div>\n<\/form>\n<\/div>\n<h3 id=\"liste_des_operandes\" class=\"sectionedit6\">Liste des op\u00e9randes<\/h3>\n<div class=\"level3\">\n<div class=\"table-responsive\">\n<table class=\"inline table table-striped table-condensed\">\n<thead>\n<tr class=\"row0\">\n<th class=\"col0\">Op\u00e9rande<\/th>\n<th class=\"col1\">Signification<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr class=\"row1\">\n<td class=\"col0\"><a class=\"wikilink1\" title=\"pdftk \u21b5\" href=\"https:\/\/doc.ubuntu-fr.org\/pdftk#concatenation\">cat<\/a><\/td>\n<td class=\"col1\">concat\u00e9nation, d\u00e9concat\u00e9nation<\/td>\n<\/tr>\n<tr class=\"row2\">\n<td class=\"col0\"><a class=\"wikilink1\" title=\"pdftk \u21b5\" href=\"https:\/\/doc.ubuntu-fr.org\/pdftk#extraction\">burst<\/a><\/td>\n<td class=\"col1\">extraction<\/td>\n<\/tr>\n<tr class=\"row3\">\n<td class=\"col0\"><a class=\"wikilink1\" title=\"pdftk \u21b5\" href=\"https:\/\/doc.ubuntu-fr.org\/pdftk#rapports\">dump_data<\/a><\/td>\n<td class=\"col1\">extraction des m\u00e9ta-donn\u00e9es, marque-pages (signets) et \u00e9tiquettes de page d\u2019un PDF<\/td>\n<\/tr>\n<tr class=\"row4\">\n<td class=\"col0\"><a class=\"wikilink1\" title=\"pdftk \u21b5\" href=\"https:\/\/doc.ubuntu-fr.org\/pdftk#compression\">uncompress<\/a><\/td>\n<td class=\"col1\">d\u00e9compression<\/td>\n<\/tr>\n<tr class=\"row5\">\n<td class=\"col0\">attach_files<\/td>\n<td class=\"col1\">inclusion de pi\u00e8ces jointes dans un document PDF<\/td>\n<\/tr>\n<tr class=\"row6\">\n<td class=\"col0\">unpack_files<\/td>\n<td class=\"col1\">extraction de pi\u00e8ces jointes d&rsquo;un document PDF<\/td>\n<\/tr>\n<tr class=\"row7\">\n<td class=\"col0\"><a class=\"wikilink1\" title=\"pdftk \u21b5\" href=\"https:\/\/doc.ubuntu-fr.org\/pdftk#remplir_un_formulaire_pdf\">fill_form<\/a><\/td>\n<td class=\"col1\">remplissage d\u2019un formulaire PDF avec des donn\u00e9es FDF<sup><a id=\"fnt__1\" class=\"fn_top\" href=\"https:\/\/doc.ubuntu-fr.org\/pdftk#fn__1\">1)<\/a><\/sup> ou XFDF<sup><a id=\"fnt__2\" class=\"fn_top\" href=\"https:\/\/doc.ubuntu-fr.org\/pdftk#fn__2\">2)<\/a><\/sup><\/td>\n<\/tr>\n<tr class=\"row8\">\n<td class=\"col0\"><a class=\"wikilink1\" title=\"pdftk \u21b5\" href=\"https:\/\/doc.ubuntu-fr.org\/pdftk#filigrane\">background<\/a><\/td>\n<td class=\"col1\">met un document en filigrane (en arri\u00e8re-plan) d&rsquo;un autre document<\/td>\n<\/tr>\n<tr class=\"row9\">\n<td class=\"col0\"><a class=\"wikilink1\" title=\"pdftk \u21b5\" href=\"https:\/\/doc.ubuntu-fr.org\/pdftk#tampon\">stamp<\/a><\/td>\n<td class=\"col1\">tamponne un document avec un autre document (mis au premier-plan)<\/td>\n<\/tr>\n<tr class=\"row10\">\n<td class=\"col0\"><a class=\"wikilink1\" title=\"pdftk \u21b5\" href=\"https:\/\/doc.ubuntu-fr.org\/pdftk#tampon\">multistamp<\/a><\/td>\n<td class=\"col1\">tamponne un document avec un autre document page \u00e0 page (mis au premier-plan)<\/td>\n<\/tr>\n<tr class=\"row11\">\n<td class=\"col0\">generate_fdf<\/td>\n<td class=\"col1\">g\u00e9n\u00e8re un fichier FDF vierge ou avec les valeurs par d\u00e9faut selon les champs contenu dans le PDF<\/td>\n<\/tr>\n<tr class=\"row12\">\n<td class=\"col0\"><a class=\"wikilink1\" title=\"pdftk \u21b5\" href=\"https:\/\/doc.ubuntu-fr.org\/pdftk#liste_des_champs_d_un_formulaire\">dump_data_fields<\/a><\/td>\n<td class=\"col1\">g\u00e9n\u00e8re un fichier texte contenant la liste des champs d\u2019un PDF, leur type, leur valeur par d\u00e9faut, etc.<\/td>\n<\/tr>\n<tr class=\"row13\">\n<td class=\"col0\"><a class=\"wikilink1\" title=\"pdftk \u21b5\" href=\"https:\/\/doc.ubuntu-fr.org\/pdftk#modifier_les_meta-donnees\">update_info<\/a><\/td>\n<td class=\"col1\">mettre \u00e0 jour les m\u00e9ta-donn\u00e9es<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<div class=\"secedit editbutton_section editbutton_6\">\n<form class=\"button btn_secedit form-inline\" action=\"\/pdftk\" method=\"post\">\n<div class=\"no\">&nbsp;<\/div>\n<\/form>\n<\/div>\n<h2 id=\"quelques_exemples\" class=\"sectionedit8 page-header\">Quelques exemples<\/h2>\n<div class=\"level2\">&nbsp;<\/div>\n<div class=\"secedit editbutton_section editbutton_8\">\n<form class=\"button btn_secedit form-inline\" action=\"\/pdftk\" method=\"post\">\n<div class=\"no\">&nbsp;<\/div>\n<\/form>\n<\/div>\n<h3 id=\"concatenation\" class=\"sectionedit9\">Concat\u00e9nation<\/h3>\n<div class=\"level3\">\n<p>La fusion ou la concat\u00e9nation de deux fichiers PDF ou plus se fait avec l\u2019op\u00e9rande <strong>cat<\/strong> :<\/p>\n<pre class=\"code\">pdftk 1.pdf 2.pdf 3.pdf cat output 123.pdf<\/pre>\n<p>ou, avec des alias (un alias ne peut qu&rsquo;\u00eatre une unique lettre majuscule) :<\/p>\n<pre class=\"code\">pdftk A=1.pdf B=2.pdf cat A B output 12.pdf<\/pre>\n<p>Pour concat\u00e9ner tous les fichiers PDF du r\u00e9pertoire courant (donc avec les jokers) et \u00e0 condition qu&rsquo;il n&rsquo;y ait pas d&rsquo;espace dans les noms de fichier :<\/p>\n<pre class=\"code\">pdftk *.pdf cat output tous.pdf<\/pre>\n<p>Pour concat\u00e9ner la page 1 puis les pages 5 \u00e0 8 d&rsquo;un premier document puis, par ordre d\u00e9croissant de la derni\u00e8re \u00e0 la page 6 d&rsquo;un deuxi\u00e8me document :<\/p>\n<pre class=\"code\">pdftk A=premier.pdf B=deuxi\u00e8me.pdf cat A1 A5-8 Bend-6 output fichier-final.pdf<\/pre>\n<p>Joint deux fichiers dont l\u2019un est crypt\u00e9 (la sortie ne l\u2019est pas) :<\/p>\n<pre class=\"code\">pdftk A=s\u00e9curis\u00e9.pdf mon-document.pdf input_pw A=foopass cat output document-combin\u00e9.pdf<\/pre>\n<p>S\u00e9parer pages paires et impaires<\/p>\n<pre class=\"code\"> pdftk fichier.pdf cat 1-endeven output fichier-pair.pdf\r\n pdftk fichier.pdf cat 1-endodd output fichier-impair.pdf<\/pre>\n<\/div>\n<div class=\"secedit editbutton_section editbutton_9\">\n<form class=\"button btn_secedit form-inline\" action=\"\/pdftk\" method=\"post\">\n<div class=\"no\">&nbsp;<\/div>\n<\/form>\n<\/div>\n<h3 id=\"deconcatenation\" class=\"sectionedit10\">D\u00e9concat\u00e9nation<\/h3>\n<div class=\"level3\">\n<p>S\u00e9pare toutes les pages d&rsquo;un fichier et les enregistre dans des fichiers diff\u00e9rents :<\/p>\n<pre class=\"code\">pdftk document.pdf burst<\/pre>\n<p>S\u00e9pare les pages de <em>document.pdf<\/em> et les enregistre dans le m\u00eame dossier en nommant les pages : <em>pg_0001.pdf, pg_0002.pdf\u2026<\/em><\/p>\n<p>On peut pr\u00e9ciser en argument de output l\u2019appellation g\u00e9n\u00e9rique avec par exemple :<\/p>\n<pre class=\"code\"> pdftk document.pdf burst output copie_no%d.pdf<\/pre>\n<p>Qui produira en sortie les fichiers : <em>copie_no1.pdf, copie_no2.pdf\u2026<\/em><\/p>\n<\/div>\n<div class=\"secedit editbutton_section editbutton_10\">\n<form class=\"button btn_secedit form-inline\" action=\"\/pdftk\" method=\"post\">\n<div class=\"no\">&nbsp;<\/div>\n<\/form>\n<\/div>\n<h3 id=\"rotations\" class=\"sectionedit11\">Rotations<\/h3>\n<div class=\"level3\">\n<p><img decoding=\"async\" class=\"mediaright img-responsive\" title=\"Rose des vents\" src=\"https:\/\/doc.ubuntu-fr.org\/_media\/divers\/120px-simple_compass_rose.svg.png\" alt=\"Rose des vents\"><\/p>\n<p>Il s\u2019agit de placer apr\u00e8s l\u2019intervalle des lettres en capitales repr\u00e9sentant les points cardinaux (en anglais) de sorte que le haut de la page d&rsquo;origine sur l&rsquo;\u00e9cran corresponde au point cardinal choisi.<\/p>\n<p>Pivote la premi\u00e8re page d\u2019un PDF de 90 degr\u00e9s dans le sens horaire (donc \u00e0 l\u2019est, point east), mais pas les autres pages&nbsp;:<\/p>\n<pre class=\"code\">pdftk entr\u00e9e.pdf cat 1east 2-end output sortie.pdf<\/pre>\n<p>Pivote toutes les pages d&rsquo;un document PDF de 180 degr\u00e9s (au sud, point S) :<\/p>\n<pre class=\"code\">pdftk entr\u00e9e.pdf cat 1-endsouth output sortie.pdf<\/pre>\n<\/div>\n<div class=\"secedit editbutton_section editbutton_11\">\n<form class=\"button btn_secedit form-inline\" action=\"\/pdftk\" method=\"post\">\n<div class=\"no\">&nbsp;<\/div>\n<\/form>\n<\/div>\n<h3 id=\"securite\" class=\"sectionedit12\">S\u00e9curit\u00e9<\/h3>\n<div class=\"level3\">\n<p>Chiffrer un document PDF avec une cl\u00e9 de 128 bits et retirer tous les droits (par d\u00e9faut) :<\/p>\n<pre class=\"code\">pdftk mon-document.pdf output mon-document-chiffr\u00e9.128.pdf owner_pw mdp1<\/pre>\n<p>Idem que ci-dessus sauf qu\u2019un mot de passe est requis pour ouvrir le PDF :<\/p>\n<pre class=\"code\">pdftk mon-document.pdf output mon-document-chiffr\u00e9.128.pdf owner_pw mdp1 user_pw mdp2<\/pre>\n<p>Idem que ci-dessus mais en autorisant l\u2019impression (apr\u00e8s l\u2019ouverture du PDF) :<\/p>\n<pre class=\"code\">pdftk mon-document.pdf output mon-document-chiffr\u00e9.128.pdf owner_pw mdp1 user_pw mdp2 allow printing<\/pre>\n<p>o\u00f9 \u00ab mdp1 \u00bb est le mot de passe du propri\u00e9taire du PDF et \u00ab mdp2 \u00bb le mot de passe de l&rsquo;utilisateur (\u00e0 personnaliser).<\/p>\n<p>D\u00e9chiffre un PDF :<\/p>\n<pre class=\"code\">pdftk chiffr\u00e9.pdf input_pw mot-de-passe output d\u00e9chiffr\u00e9.pdf<\/pre>\n<\/div>\n<div class=\"secedit editbutton_section editbutton_12\">\n<form class=\"button btn_secedit form-inline\" action=\"\/pdftk\" method=\"post\">\n<div class=\"no\">&nbsp;<\/div>\n<\/form>\n<\/div>\n<h3 id=\"compression\" class=\"sectionedit13\">Compression<\/h3>\n<div class=\"level3\">\n<p>D\u00e9comprime les flux de page PDF (utile en particulier pour modifier le code PDF dans un \u00e9diteur de texte) :<\/p>\n<pre class=\"code\">pdftk mon-document.pdf output mon-document.d\u00e9comprim\u00e9.pdf uncompress<\/pre>\n<p>Comprime les flux de page PDF (utile en particulier pour gagner de la place) :<\/p>\n<pre class=\"code\">pdftk mon-document.pdf output mon-document.comprim\u00e9.pdf compress<\/pre>\n<div class=\"notetip\">La commande suivante est beaucoup plus efficace : gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=fichier_reduit.pdf fichier_a_reduire.pdf<\/div>\n<\/div>\n<div class=\"secedit editbutton_section editbutton_13\">\n<form class=\"button btn_secedit form-inline\" action=\"\/pdftk\" method=\"post\">\n<div class=\"no\">&nbsp;<\/div>\n<\/form>\n<\/div>\n<h3 id=\"reparation\" class=\"sectionedit14\">R\u00e9paration<\/h3>\n<div class=\"level3\">\n<p>R\u00e9pare une table XREF corrompue d\u2019un PDF et les longueurs de flux (si possible) <sup><a id=\"fnt__3\" class=\"fn_top\" href=\"https:\/\/doc.ubuntu-fr.org\/pdftk#fn__3\">3)<\/a><\/sup> :<\/p>\n<pre class=\"code\">pdftk cass\u00e9.pdf output r\u00e9par\u00e9.pdf<\/pre>\n<\/div>\n<div class=\"secedit editbutton_section editbutton_14\">\n<form class=\"button btn_secedit form-inline\" action=\"\/pdftk\" method=\"post\">\n<div class=\"no\">&nbsp;<\/div>\n<\/form>\n<\/div>\n<h3 id=\"extraction\" class=\"sectionedit15\">Extraction<\/h3>\n<div class=\"level3\">&nbsp;<\/div>\n<h4 id=\"de_certaines_pages_d_un_document\">De certaines pages d&rsquo;un document<\/h4>\n<div class=\"level4\">\n<p>Il faut utiliser l&rsquo;op\u00e9rande \u00ab cat \u00bb.<\/p>\n<p>Pour extraire une seule page d&rsquo;un document :<\/p>\n<pre class=\"code\">pdftk mon-document.pdf cat 1 output page1-de-mon-document.pdf<\/pre>\n<p>Pour extraire plusieurs pages situ\u00e9es les unes \u00e0 la suite des autres :<\/p>\n<pre class=\"code\">pdftk mon-document.pdf cat 2-5 output pages2-a-5-de-mon-document.pdf<\/pre>\n<p>Pour extraire plusieurs pages d&rsquo;un document et les ins\u00e9rer dans un seul document (pages 6, 2 \u00e0 5 et 7 \u00e0 9 ins\u00e9r\u00e9es dans l&rsquo;ordre 6, 2 \u00e0 5, 7 \u00e0 9) :<\/p>\n<pre class=\"code\">pdftk mon-document.pdf cat 6 2-5 7-9 output pages-de-mon-document.pdf<\/pre>\n<\/div>\n<h4 id=\"de_toutes_les_pages_d_un_document\">De toutes les pages d\u2019un document<\/h4>\n<div class=\"level4\">\n<p>On utilise l\u2019op\u00e9rande \u00ab burst \u00bb.<\/p>\n<p>Pour extraire chaque page d\u2019un document et reporter les donn\u00e9es dans un fichier \u00ab doc_data.txt \u00bb :<\/p>\n<pre class=\"code\">pdftk mon-document.pdf burst<\/pre>\n<p>Pour extraire chaque page d\u2019un document dans des fichiers dont le nom commencera par le num\u00e9ro de la page cod\u00e9 sur 5 chiffres :<\/p>\n<pre class=\"code\">pdftk mon-document.pdf burst output %05d_fichiers_extraits.pdf<\/pre>\n<\/div>\n<div class=\"secedit editbutton_section editbutton_15\">\n<form class=\"button btn_secedit form-inline\" action=\"\/pdftk\" method=\"post\">\n<div class=\"no\">&nbsp;<\/div>\n<\/form>\n<\/div>\n<h3 id=\"rapports\" class=\"sectionedit16\">Rapports<\/h3>\n<div class=\"level3\">\n<p>Extrait les m\u00e9ta-donn\u00e9es, les marque-pages (signets) et les \u00e9tiquettes de page d\u2019un PDF dans un fichier texte :<\/p>\n<pre class=\"code\">pdftk mon-document.pdf dump_data output rapport.txt<\/pre>\n<\/div>\n<div class=\"secedit editbutton_section editbutton_16\">\n<form class=\"button btn_secedit form-inline\" action=\"\/pdftk\" method=\"post\">\n<div class=\"no\">&nbsp;<\/div>\n<\/form>\n<\/div>\n<h3 id=\"gestion_des_formulaires\" class=\"sectionedit17\">Gestion des formulaires<\/h3>\n<div class=\"level3\">&nbsp;<\/div>\n<h4 id=\"liste_des_champs_d_un_formulaire\">Liste des champs d\u2019un formulaire<\/h4>\n<div class=\"level4\">\n<p>Extrait la liste des champs, et leurs propri\u00e9t\u00e9s, d\u2019un formulaire PDF dans un fichier texte :<\/p>\n<pre class=\"code\">pdftk mon-document.pdf dump_data_fields output liste_des_champs.txt<\/pre>\n<\/div>\n<h4 id=\"remplir_un_formulaire_pdf\">Remplir un formulaire PDF<\/h4>\n<div class=\"level4\">\n<p>Permet de remplir les champs d\u2019un formulaire PDF avec des donn\u00e9es provenant d\u2019un fichier FDF ou d&rsquo;un fichier XFDF (XML).<\/p>\n<pre class=\"code\">pdftk document.pdf fill_form donn\u00e9es.fdf output document-rempli.pdf\r\npdftk document.pdf fill_form donn\u00e9es.xfdf output document-rempli.pdf<\/pre>\n<p>Les champs seront toujours modifiables (mais pr\u00e9-remplis).<\/p>\n<p>Pour rendre les champs non modifiables (c\u2019est-\u00e0-dire \u00ab aplatir \u00bb le PDF), il faut utiliser l\u2019option \u00ab <code>flatten<\/code> \u00bb :<\/p>\n<pre class=\"code\">pdftk document.pdf fill_form donn\u00e9es.fdf output document-rempli.pdf flatten\r\npdftk document.pdf fill_form donn\u00e9es.xfdf output document-rempli.pdf flatten<\/pre>\n<div class=\"notetip\">Si le PDF existe d\u00e9j\u00e0, PDFTK le signalera <em>sur la ligne de commande<\/em> et <em>attendra une r\u00e9ponse<\/em>. Utiliser \u00ab&nbsp;<code>dont_ask<\/code>&nbsp;\u00bb en fin de commande permet d&rsquo;\u00e9craser un \u00e9ventuel fichier existant automatiquement. Exemple :<\/p>\n<pre class=\"code\">pdftk document.pdf fill_form donn\u00e9es.fdf output document-rempli.pdf dont_ask<\/pre>\n<\/div>\n<\/div>\n<h4 id=\"exemple_de_fichier_xfdf\">Exemple de fichier XFDF<\/h4>\n<div class=\"level4\">\n<p>Soit un fichier PDF contenant deux champs de saisie, nomm\u00e9s \u00ab <code>SAI_Lieu<\/code> \u00bb et \u00ab <code>SAI_Date<\/code> \u00bb. Pour (pr\u00e9-)remplir ces champs de saisie par programmation, le fichier XFDF g\u00e9n\u00e9r\u00e9 doit au moins avoir la forme suivante et \u00eatre en UTF-8 :<\/p>\n<pre class=\"code xml\"><span class=\"sc3\"><span class=\"re1\">&lt;?xml<\/span> <span class=\"re0\">version<\/span>=<span class=\"st0\">\"1.0\"<\/span> <span class=\"re0\">encoding<\/span>=<span class=\"st0\">\"UTF-8\"<\/span><span class=\"re2\">?&gt;<\/span><\/span>\r\n<span class=\"sc3\"><span class=\"re1\">&lt;xfdf<\/span> <span class=\"re0\">xmlns<\/span>=<span class=\"st0\">\"http:\/\/ns.adobe.com\/xfdf\/\"<\/span> <span class=\"re0\">xml:space<\/span>=<span class=\"st0\">\"preserve\"<\/span><span class=\"re2\">&gt;<\/span><\/span>\r\n    <span class=\"sc3\"><span class=\"re1\">&lt;fields<span class=\"re2\">&gt;<\/span><\/span><\/span>\r\n        <span class=\"sc3\"><span class=\"re1\">&lt;field<\/span> <span class=\"re0\">name<\/span>=<span class=\"st0\">\"SAI_Lieu\"<\/span><span class=\"re2\">&gt;<\/span><\/span>\r\n            <span class=\"sc3\"><span class=\"re1\">&lt;value<span class=\"re2\">&gt;<\/span><\/span><\/span>Metz<span class=\"sc3\"><span class=\"re1\">&lt;\/value<span class=\"re2\">&gt;<\/span><\/span><\/span>\r\n        <span class=\"sc3\"><span class=\"re1\">&lt;\/field<span class=\"re2\">&gt;<\/span><\/span><\/span>\r\n        <span class=\"sc3\"><span class=\"re1\">&lt;field<\/span> <span class=\"re0\">name<\/span>=<span class=\"st0\">\"SAI_Date\"<\/span><span class=\"re2\">&gt;<\/span><\/span>\r\n            <span class=\"sc3\"><span class=\"re1\">&lt;value<span class=\"re2\">&gt;<\/span><\/span><\/span>12 novembre 2008<span class=\"sc3\"><span class=\"re1\">&lt;\/value<span class=\"re2\">&gt;<\/span><\/span><\/span>\r\n        <span class=\"sc3\"><span class=\"re1\">&lt;\/field<span class=\"re2\">&gt;<\/span><\/span><\/span>\r\n    <span class=\"sc3\"><span class=\"re1\">&lt;\/fields<span class=\"re2\">&gt;<\/span><\/span><\/span>\r\n<span class=\"sc3\"><span class=\"re1\">&lt;\/xfdf<span class=\"re2\">&gt;<\/span><\/span><\/span><\/pre>\n<\/div>\n<div class=\"secedit editbutton_section editbutton_17\">\n<form class=\"button btn_secedit form-inline\" action=\"\/pdftk\" method=\"post\">\n<div class=\"no\">&nbsp;<\/div>\n<\/form>\n<\/div>\n<h3 id=\"superposition\" class=\"sectionedit18\">Superposition<\/h3>\n<div class=\"level3\">&nbsp;<\/div>\n<h4 id=\"filigrane\">Filigrane<\/h4>\n<div class=\"level4\">\n<p>Permet de mettre un PDF en arri\u00e8re-plan d\u2019un autre PDF :<\/p>\n<pre class=\"code\">pdftk document.pdf background fond.pdf output sortie.pdf<\/pre>\n<p>On peut utiliser des fichiers multi-pages si le nombre de pages est identique :<\/p>\n<pre class=\"code\">pdftk document.pdf multibackground fond.pdf output sortie.pdf<\/pre>\n<\/div>\n<h4 id=\"tampon\">Tampon<\/h4>\n<div class=\"level4\">\n<p>Permet de tamponner un PDF (document-\u00e0-tamponner.pdf) avec un autre PDF (tampon.pdf) :<\/p>\n<pre class=\"code\">pdftk document-\u00e0-tamponner.pdf stamp tampon.pdf output document-tamponn\u00e9.pdf<\/pre>\n<\/div>\n<h4 id=\"tampon_multiple\">Tampon multiple<\/h4>\n<div class=\"level4\">\n<p>Permet par exemple de rajouter les num\u00e9ros de pages \u00e0 un pdf<\/p>\n<pre class=\"code\">pdftk document-\u00e0-tamponner.pdf multistamp pages_vierges_avec_numeros_de_page.pdf output document-tamponn\u00e9.pdf<\/pre>\n<p>( les pages num\u00e9rot\u00e9es peuvent \u00eatre cr\u00e9es avec un script sous libreoffice)<\/p>\n<\/div>\n<div class=\"secedit editbutton_section editbutton_18\">\n<form class=\"button btn_secedit form-inline\" action=\"\/pdftk\" method=\"post\">\n<div class=\"no\">&nbsp;<\/div>\n<\/form>\n<\/div>\n<h3 id=\"modifier_les_meta-donnees\" class=\"sectionedit19\">Modifier les m\u00e9ta-donn\u00e9es<\/h3>\n<div class=\"level3\">\n<p>Permet de modifier ou de mettre \u00e0 jour les m\u00e9ta-donn\u00e9es du PDF, pr\u00e9alablement extraites avec l\u2019op\u00e9rande \u00ab&nbsp;<a class=\"wikilink1\" title=\"pdftk \u21b5\" href=\"https:\/\/doc.ubuntu-fr.org\/pdftk#rapports\">dump_data<\/a>&nbsp;\u00bb. Il suffit de modifier le fichier \u00ab&nbsp;rapport.txt&nbsp;\u00bb contenant l\u2019extraction en question, puis de mettre \u00e0 jour des m\u00e9ta-donn\u00e9es du PDF de la mani\u00e8re suivante :<\/p>\n<pre class=\"code\">pdftk document.pdf update_info rapport.txt output document-mis-\u00e0-jour.pdf<\/pre>\n<\/div>\n<div class=\"secedit editbutton_section editbutton_19\">\n<form class=\"button btn_secedit form-inline\" action=\"\/pdftk\" method=\"post\">\n<div class=\"no\">&nbsp;<\/div>\n<\/form>\n<\/div>\n<h2 id=\"desinstallation\" class=\"sectionedit20 page-header\">D\u00e9sinstallation<\/h2>\n<div class=\"level2\">\n<p>Pour supprimer cette application, il suffit de <a class=\"wikilink1\" title=\"tutoriel:comment_supprimer_un_paquet\" href=\"https:\/\/doc.ubuntu-fr.org\/tutoriel\/comment_supprimer_un_paquet\">supprimer le paquet<\/a> <strong>pdftk<\/strong>. La configuration de l\u2019application sera conserv\u00e9e ou supprim\u00e9e selon la m\u00e9thode de d\u00e9sinstallation que vous choisirez.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>PDFTK PDFTK est un programme en ligne de commande permettant d&rsquo;effectuer certaines manipulations de documents PDF, comme la mise en arri\u00e8re-plan, la concat\u00e9nation, extraction de pages, le remplissage des formulaires, etc. C\u2019est un logiciel libre sous licence GNU GPL. &nbsp; Installation &nbsp; &nbsp; Apr\u00e8s Ubuntu 18.04 Il suffit d\u2019installer le paquet pdftk ou pdftk-java \u00e0 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"ngg_post_thumbnail":0},"_links":{"self":[{"href":"https:\/\/hengowebsite.luong.fr\/index.php?rest_route=\/wp\/v2\/pages\/7008"}],"collection":[{"href":"https:\/\/hengowebsite.luong.fr\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/hengowebsite.luong.fr\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/hengowebsite.luong.fr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hengowebsite.luong.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7008"}],"version-history":[{"count":1,"href":"https:\/\/hengowebsite.luong.fr\/index.php?rest_route=\/wp\/v2\/pages\/7008\/revisions"}],"predecessor-version":[{"id":7009,"href":"https:\/\/hengowebsite.luong.fr\/index.php?rest_route=\/wp\/v2\/pages\/7008\/revisions\/7009"}],"wp:attachment":[{"href":"https:\/\/hengowebsite.luong.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7008"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}