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.

7voto

benwiggy Points 21125

Le script Python d'Apple dans l'action Automator est très lent, car il utilise les API CGPDFDocument de CoreGraphics, plutôt que le nouveau cadre PDFKit. Il importe également l'ensemble de la bibliothèque CoreGraphics, plutôt que les seules API requises.

Un script Python alternatif et plus rapide, peuvent être trouvés ici :

Ce script ajoute également une table des matières au PDF, en listant chaque fichier composant (et en fusionnant les ToC existantes), ce que ne fait pas celui d'Apple.

Il peut être utilisé sur la ligne de commande (avec les noms de fichiers PDF comme arguments), ou dans une action du shell script d'Automator, pour créer une action/service rapide pour le Finder.

2 votes

À titre d'essai, en utilisant le time commande en conjonction avec votre joinpdfs.py script l'intégré join.py script et deux fichiers de ~200 MB chacun, votre joinpdfs.py script était plus rapide de 9 secondes que le système intégré join.py script avec, bien sûr, l'avantage supplémentaire d'avoir la table des matières intacte. Joli ! +1

1 votes

BTW 9 secondes, ça peut sembler peu, mais c'était un tiers du temps total de l'intégration. script donc un tiers du temps plus rapide est significatif.

3voto

Paul Gowder Points 151

Pour info, j'ai écrit un petit programme rapide qui vous permet de faire cela sans avoir à compter sur des dépendances externes comme le système Python et autres. Sur github ici : pdfmerge et assez simple à utiliser, on peut lui passer une liste de fichiers PDF à fusionner avec pdfmerge in1.pdf in2.pdf ... out.pdf en lui passant une liste de fichiers à fusionner dans un fichier texte, par exemple pdfmerge infileslist.txt out.pdf ou simplement faire le répertoire courant dans l'ordre ABC avec pdfmerge out.pdf . Je l'ai écrit comme un projet d'apprentissage, donc libre et ouvert, et vous pouvez obtenir le dernier binaire à partir de l'onglet "releases" sur github.

0 votes

Étant donné que Python est installé par défaut dans et comme partie intégrante de MacOS, je ne le considère pas nécessairement comme une dépendance externe en soi. En d'autres termes, pour utiliser ce qui est déjà disponible d'emblée dans MacOS pour joindre des fichiers PDF, il suffit d'utiliser la commande join.py script de l'action Combiner les pages PDF dans Automator, rien d'autre ne doit être téléchargé ou installé, pourtant pour utiliser le vôtre je devrais le télécharger et l'installer. Je n'ai pas non plus vu de binaire sur le lien.

1 votes

BTW J'ai parcouru votre code et il est intéressant de constater que vous utilisez deux des composants de base (Foundation et Quartz) que le script Python utilise déjà aussi. Y a-t-il quelque chose dans votre code qui soit intrinsèquement meilleur pour faire basculer son utilisation par rapport à ce qui est déjà offert par défaut sans avoir à télécharger quoi que ce soit, alors qu'avec le vôtre on doit prendre des mesures supplémentaires et additionnelles pour l'utiliser ?

1 votes

Pour les personnes qui n'utilisent pas Python pour autre chose, il est probablement plus logique d'utiliser le script fourni par Apple. Mais pour les personnes qui utilisent Python, cela peut être un gros problème de gérer plusieurs versions (le système Python est 2.7, le Python moderne est 3.x) avec différentes installations de modules et autres. Sur ma machine, par exemple, mon $PATH pointe vers un Python totalement différent. Cela peut être résolu avec une utilisation judicieuse des shebangs et autres, mais je trouve cela ennuyeux. YMMV, bien sûr. Aussi, lien direct vers la page de téléchargement du binaire : github.com/paultopia/pdfmerge/releases/latest

1voto

kalaxy Points 561

Si vous voulez être en mesure de combiner plusieurs pages sur une seule feuille, j'ai écrit un outil qui peut le faire (ou juste une combinaison normale). Mac PDFNUp

Vous pouvez obtenir le téléchargement binaire sur le bouton "releases".

Utilisation : pdfnup --output <out> --nup 1/2/6 <filename>

-1voto

Dmitry Kremer Points 11

Formules pour le brassage à domicile

brew cask install combine-pdfs

Il s'agit d'un Application GUI qui permet de fusionner de nombreux pdf. Très puissant.

3 votes

Les 1000 premières pages sont gratuites, ensuite vous devez acheter une licence.

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