146 votes

Comment puis-je combiner plusieurs PDF à l'aide de la ligne de commande ?

Existe-t-il une méthode rapide pour combiner plusieurs fichiers PDF en un seul ?

Je sais que cela peut être fait en utilisant Preview.app.

178voto

user3439894 Points 52496

Consultez la rubrique "Combinaison de fichiers PDF en ligne de commande sous OSX" dans le site Web de la Commission européenne. Joindre des fichiers PDF dans OS X à partir de la ligne de commande .

Il s'avère qu'à partir de Tiger, OSX est livré avec un script Python. qui fait exactement ce dont vous avez besoin. Le script est déjà exécutable, et Python est préinstallé sur OS X, donc tout ce que vous avez à faire pour l'exécuter est de ouvrir le Terminal et taper

"/System/Library/Automator/Combine PDF Pages.action/Contents/Resources/join.py" -o PATH/TO/YOUR/MERGED/FILE.pdf /PATH/TO/ORIGINAL/1.pdf /PATH/TO/ANOTHER/2.pdf /PATH/TO/A/WHOLE/DIR/*.pdf

De plus, sur la page liée, il est suggéré de créer un lien symbolique pour le fichier join.py pour faciliter la saisie, mais ils ont omis l'élément -s sur ln -s ... ... et sans elle, un lien dur est créé. Cela n'a probablement pas d'importance, mais je tenais à le mentionner.

0 votes

Ça a marché pour moi. Une bonne chose ici est d'éviter d'avoir à installer des paquets supplémentaires que vous n'utiliserez peut-être plus jamais. Merci.

0 votes

Cela a fonctionné pour moi sur El Capitan 10.11.6.

8 votes

Avertissement : J'ai eu des PDFs où cela a perturbé la rotation de plusieurs pages.

136voto

Il suffit d'installer Ghostscript en utilisant la commande Brew with :

brew install gs

Puis lancez la commande avec tous les fichiers listés :

gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=merged.pdf source1.pdf source2.pdf source3.pdf

0 votes

OS X/MacOS dispose déjà nativement d'un moyen de combiner des fichiers PDF à partir de la ligne de commande, alors pourquoi perdre le temps de devoir installer Command Line Tools pour Xcode, Homebrew et ensuite Ghostscript, pour faire quelque chose qui peut déjà être fait nativement sans avoir à installer aucun des paquets susmentionnés ?

9 votes

@user3439894 de nombreuses personnes ont déjà installé ces paquets courants et utilisent déjà gs donc pour une référence future, cette solution serait tout aussi pratique.

0 votes

@htor, je ne sais pas pourquoi vous m'adressez votre commentaire, car je ne suis pas l'auteur de la réponse que vous commentez ! Cela dit, MacOS n'a pas gs installé par défaut et probablement la raison pour laquelle Bartosz Petrynski le suggère dans sa réponse.

34voto

gwint Points 331

J'ai trouvé le libre Outil en ligne de commande pour le PDF cohérent pour être la meilleure option. Il est très rapide, sans perte, et n'altère pas l'orientation ou les liens hypertextes comme le faisaient d'autres solutions. Le format est :

cpdf file1.pdf file2.pdf -o output.pdf

1 votes

Cela devrait être la réponse acceptée. Preview.app ainsi que join.py bousillent les hyperliens.

2 votes

Aussi, cpdf *.pdf -o output.pdf fonctionne parfaitement si vous avez beaucoup de pdfs à combiner dans un seul répertoire.

0 votes

Oui, c'est le meilleur, c'est aussi un guichet unique pour tout ce que vous voulez faire avec pdfs.....

29voto

Yuchen Zhang Points 241

Vous pouvez utiliser pdfunite qui fait partie de la Paquet Poppler et peut être installé via Homebrew ( brew install poppler ).

pdfunite 1.pdf 2.pdf 3.pdf combined_pdf.pdf

Fusionne les trois fichiers PDF en combined_pdf.pdf .

2 votes

Ou utilisez une boucle for avec un tri numérique, comme suggéré par : stackoverflow.com/a/23643544/861597

0 votes

Avec GNU Parallel et pdfunite, je l'ai utilisé pour combiner le plus de CV ajoutés à un dossier depuis la dernière fois que j'ai vérifié : find . -name \*.pdf -newer toDec3.pdf -print0 | parallel -0 -X -j1 -x pdfunite {} toDec12.pdf

19voto

Micah Stubbs Points 301

La construction sur sur @Bartosz Petrynski 's belle réponse nous pouvons faire nous-mêmes un minimum cpdf en plus de GhostScript :

brew install gs

cpdf () { 
  gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="$1" "${@:2}"
}

puis l'utiliser comme :

cpdf merged.pdf file1.pdf file2.pdf file3.pdf

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X