J'ai besoin de fusionner quelques fichiers PDF somnolents, et je veux que tous les fichiers PDF d'entrée commencent sur une page impaire dans le fichier PDF de sortie.
Exemple: A.pdf
a 3 pages, B.pdf
a 4 pages. Je ne veux pas que ma sortie contienne 7 pages. Ce que je veux, c'est un pdf de 8 pages dans lequel les pages 1-3 sont de A.pdf
, la page 4 est vide et les pages 5-8 sont de B.pdf
. Comment puis-je faire ceci?
Je connais pdftk, mais je n'ai pas trouvé une telle option dans la page de manuel.
./pdf-cat-even $(cat list-of-file-names.txt) >concatenated.pdf
<list-of-file-names.txt tr '\n' '\0' | xargs -0 ./pdf-cat-even >concatenated.pdf
La première étape consiste à produire un fichier pdf avec une page vide. Vous pouvez le faire facilement avec de nombreux programmes (LibreOffice / OpenOffice, inkscape, (La) TeX, scribus, etc.)
Il vous suffit ensuite d'inclure cette page vide si nécessaire:
Si vous voulez le faire automatiquement avec un script, vous pouvez par exemple utiliser
pdftk file.pdf dump_data | grep NumberOfPages | egrep -o '[0-9]*'
pour extraire le nombre de pages.la source
pdftk --version
renvoie pdftk 1.44. Je me souviens que mes amis plus avertis ont passé au moins 15 minutes à essayer différentes choses pour obtenir ce travail et ont abandonné.La réponse de Gilles a fonctionné pour moi, mais comme je dois fusionner de nombreux fichiers, c'est plus pratique si je peux lire leurs noms dans un fichier texte. J'ai légèrement modifié le code de Gilles pour faire exactement cela, peut-être que cela aiderait quelqu'un d'autre:
la source
Vous pouvez également utiliser LaTeX pour ce faire (bien que je sache que ce n'est probablement pas ce que vous voulez). Quelque chose comme ce qui suit devrait fonctionner:
Notez que
\cleardoublepage
seulement insère une page vierge avec des classes qui sont faites pour l'impression recto verso (par exemple. Livre)Plus d'options et d'informations sur
pdfpages
peuvent être trouvées sur CTAN .la source
\includepdf[pages=-]{...}
.\cleardoublepage
une page vierge que si vous utilisez une classe conçue pour l'impression recto verso. J'utilisais un article qui ne fonctionnait pas; Je l'ai corrigé et mis à jour la question pour refléter cela.\includepdf
inclut uniquement la première page par défaut (pas toutes les pages).\documentclass[twoside]{article}
fonctionne aussi.Voici le code avec PyPDF2 et python3
la source