Un outil graphique freeware et une version payante du PDFtk original existent
également pour Windows, mais cet article ne décrira que la version en ligne de
commande appelée par son éditeur PDFtk
server. Plus précisément, les
exemples ci-dessous utilisent le port de pdftk en
java généralement disponible sous les
distributions GNU/Linux par un paquet nommé pdftk-java
.
Syntaxe de base
La syntaxe de base d'utilisation de la commande est la suivante :
pdftk <fichiers source> <opération> [<arguments de l'opération >] [output <fichier de destination>]
<fichiers source>
est la liste des fichiers source, mais peut aussi être-
pour lire le document source depuis l'entrée standard, ouPROMPT
pour quepdftk
demande interactivement à l'utilisateur le ou les noms des fichiers source ;<arguments d'opération>
est facultatif, puisque certaines opérations n'exigent pas d'argument ;output <fichier de destination>
est optionnel avec certaines actions, mais obligatoire avec d'autres.<fichier de destination>
est généralement le nom du fichier de destination. Ce peut aussi être une chaîne de formatage de style printf pour nommer les fichiers résultant de l'éclatement du document avec l'opérationburst
. Ou il peut être-
pour afficher le résultat sur la sortie standard, ouPROMPT
pour quepdftk
demande interactivement à l'utilisateur le nom du fichier de destination.
Extraire des pages
L'extraction d'une page d'un document est possible à l'aide de l'opération
cat
.
Pour extraire la page 3 d'un document source.pdf
et l'écrire dans le document
page3.pdf
par exemple, utilisez la commande suivante :
Plusieurs pages peuvent bien sûr être extraites en même temps. Elles seront
concaténées dans le document de destination dans l'ordre précisé. Cet exemple
va extraire les pages 2, 3, 4 et la page 6 du document source.pdf
vers le
document résultat.pdf
:
Voici quelques autres exemples de plages de pages pour en illustrer les possibilités :
- 1-21 : pages 1 à 21 (incluses) ;
- 4-10 5-7 8 : pages 4 à 10, 5 à 7 et la page 8 ;
- end-2 : pages extraites en ordre inverse de la dernière page à la seconde ;
- end-2odd : identique à la plage ci-dessous, mais seules les pages impaires seront extraites ;
- 1-4 5 5 4 : pages 1 à 4, puis répète la page 5 deux fois, et extrait la page 4 une nouvelle fois ;
- r1 : la dernière page du document source (même chose que end) ;
- r3-r5 : pages 3 à 5 en comptant depuis la fin du document source.
Concaténer plusieurs documents complets
Pour concaténer toutes les pages des deux documents début.pdf
et fin.pdf
vers le document résultat.pdf
, utilisez :
Concaténer des pages spécifiques de documents différents
Vous pouvez choisir quelle(s) page(s) sélectionner des documents source et les concaténer. Dans ce cas, utiliser des alias (ce sont des noms librement choisis) aux noms de fichiers source pour préciser ensuite les pages à extraire de chaque fichier dans les plages de pages.
Par exemple, pour inclure les pages 1, 2, 3 et 6 d'un document appelé
source1.pdf
, la page 2 de source2.pdf
, et toutes les pages à partir de la
page 4 depuis source3.pdf
et écrire toutes ces pages dans un document nommé
résultat.pdf
, you pouvez utiliser :
Un exemple similaire serait de remplacer la page 4 d'un document source1.pdf
par l'avant-dernière page de source2.pdf
(r2
est la seconde page depuis la
fin du document) :
Notez que vous pouvez utiliser les mots-clés even
ou odd
, seul ou en
suffixe d'une plage de pages pour sélectionner respectivement les pages
paires et impaires de la plage (voir les exemples de plages de pages plus
haut).
Éclater toutes les pages d'un document dans différents fichiers
Utilisez l'action burst
pour éclater toutes les pages d'un document dans un
fichier spécifique qui sera nommé par défaut pg_0001.pdf
, pg_0002.pdf
,
etc. :
Le nom des fichiers de destination peut être choisir en fournissant le mot-clé
output
et une chaîne de formatage de style printf pour nommer les fichiers.
Si vous voulez que les fichiers des pages soient nommés page_01.pdf
,
page_02.pdf
, etc., vous pouvez utilisez :
Le format utilisé par défaut pour les fichiers des pages est pg_%04d.pdf
.
Assembler les pages de documents
Si vous avez numérisé les pages impaires d'un document séparément des pages
paires (par exemple en utilisant le bac d'alimentation d'un numériseur qui ne
numérise qu'un côté des feuilles), l'action shuffle
peut être utilisée pour
facilement les réassembler dans un nouveau document.
Comme le précise la page de manuel de pdftk(1)
, shuffle
« fonctionne
comme l'opération cat, excepté qu'il prend une page à la fois de chaque plage
de pages pour assembler le PDF de destination ».
Pour assembler toutes les pages des documents source, vous n'avez pas besoin de fournir une plage de pages, et vous pouvez simplement écrire :
Mais, si impaires.pdf
a été numérisé dans l'ordre inverse, vous pouvez
simplement préciser une plage à rebours comme ceci :
Dans ce cas, shuffle
va produire le document destination.pdf
en
écrivant, dans l'ordre :
- la dernière page de
impaires.pdf
; - la première page de
paires.pdf
; - l'avant-dernière page de
impaires.pdf
; - la seconde page de
paires.pdf
; - etc.
Si vous voulez tester cette fonctionnalité, rappelez-vous que vous pouvez
extraire les pages impaires ou les pages paires d'un document à l'aide de
cat
:
Effectuer une rotation à des pages d'un document
Pour effectuer une rotation à des pages d'un document, utilisez rotate
et
précisez la liste des pages à faire pivoter, comme vous donneriez une liste de
pages à concaténer avec cat
, mais sans préciser les pages que vous ne voulez
pas faire pivoter.
Notez que l'ordre des pages dans la commande de rotation n'importe pas, il ne changera pas l'ordre des pages dans le document de destination.
Ainsi, une commande de rotation va suivre ce type de syntaxe :
Pour préciser le type de rotation de manière absolue, utilisez les mots-clés suivants. Le haut d'origine de la page pivotera pour pointer vers autant de degrés vers la droite :
north
: 0°;east
: 90°;south
: 180°;west
: 270°;
Les mots-clés suivants permettent de préciser une rotation relative à la rotation déjà appliquée à une page :
left
: -90°;right
: +90°;down
: +180°.
Par exemple, pour orienter le haut de toutes les pages du document source.pdf
à 90° vers la droite, utilisez :
Pour pivoter de 90° vers vers la gauche les pages 2 et 4 du document
source.pdf
(en laissant les autres pages intactes, et l'ordre d'origine des
pages incangé), vous pourriez utiliser :
Combiner rotation et concaténation
L'opération rotate
peut être combinée avec cat
simplement en utilisant un
mot-clé de rotation dans la plage des pages à extraire.
Par exemple, après utilisation de la commande suivante, le document
résultat.pdf
:
- commencera par les pages 1 et 2 inchangées de
source1.pdf
; - inclura ensuite toutes les pages de
source2.pdf
, toutes pivotées de 90° vers la droite ; - et finalement inclura les pages 5 et toutes les suivantes jusqu'à la fin
de
source1.pdf
: