Réponses:
Reportez-vous à la section "Combinaison de fichiers PDF sur la ligne de commande sous OSX" dans Jointure de fichiers PDF sous OS X à partir de la ligne de commande .
Il s'avère que depuis 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. Il suffit donc de l’exécuter pour 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
Également sur la page liée , il suggère de faire un lien symbolique pour le join.py
fichier pour faciliter la saisie mais ils ont omis l' -s
en ln -s ... ...
, et sans elle, un lien dur est créé. Cela n'aurait probablement pas d'importance, bien que je le mentionne.
Installez simplement Ghostscript en utilisant Brew avec la commande:
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
gs
. Cette solution serait donc tout aussi pratique pour les futures références.
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 cadre plus récent de PDFKit. Il importe également toute la bibliothèque CoreGraphics, plutôt que simplement les API requises.
Un autre script python plus rapide peut être trouvé ici:
Ce script ajoute également une table des matières au PDF, répertoriant chaque fichier de composant (et fusionnant les listes de tâches existantes), ce que ne fait pas Apple.
Il peut être utilisé sur la ligne de commande (avec les noms de fichiers PDF comme arguments) ou dans une action de script shell Automator pour créer une action / un service rapide pour le Finder.
time
commande en conjonction avec votre joinpdfs.py
scénario , le intégré join.py
scénario et deux fichiers ~ 200 Mo chacun, votre joinpdfs.py
scénario était de 9 secondes plus vite que le intégré join.py
scénario , avec bien sûr l'avantage d'avoir la table des matières intacte . Agréable! +1
FWIW, j’ai écrit un petit programme rapide qui te permet de le faire sans avoir à dépendre de dépendances externes comme le système python, etc. Sur github ici: pdfmerge et assez simple à utiliser, vous pouvez lui transmettre une liste de fichiers PDF avec lesquels fusionner pdfmerge in1.pdf in2.pdf ... out.pdf
, une liste de fichiers à fusionner dans un fichier texte comme, pdfmerge infileslist.txt out.pdf
ou tout simplement créer le répertoire actuel dans l’ordre ABC pdfmerge out.pdf
. Je l'ai écrit en tant que projet d'apprentissage, donc gratuit et ouvert, et vous pouvez obtenir le dernier binaire à partir de l'onglet des versions de github.
join.py
script de l'action Combiner des pages PDF dans Automator, rien d'autre ne doit être téléchargé ou installé, mais pour utiliser le vôtre, il me faudrait téléchargez et installez-le. Aussi n'a pas vu un binaire sur le lien.
la construction sur le @Bartosz Petryński de bonne réponse , nous pouvons faire un minimum propre cpdf
utilité sur le dessus de Ghostscript:
brew install gs
cpdf () {
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="$1" "${@:2}"
}
puis utilisez-le comme:
cpdf merged.pdf file1.pdf file2.pdf file3.pdf
J'ai trouvé l' outil de ligne de commande PDF gratuit Coherent comme étant la meilleure option. Il est très rapide, sans perte et ne gâche pas l’orientation ou les hyperliens comme le faisaient certaines autres solutions. Le format est:
cpdf file1.pdf file2.pdf -o output.pdf