Risposte:
Dai un'occhiata a "Combinazione di file PDF dalla riga di comando in OSX" in Unione di file PDF in OS X dalla riga di comando .
Si scopre che da Tiger in poi, OSX viene fornito con uno script Python che fa esattamente ciò di cui hai bisogno. Lo script è già eseguibile e Python è preinstallato su OS X, quindi tutto ciò che devi fare per eseguirlo è aprire il Terminale e digitare
"/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
Anche sulla pagina collegata si suggerisce di fare un collegamento simbolico per il join.py
file per rendere la digitazione più facile tuttavia omesso l' -s
in ln -s ... ...
, e senza di essa, viene creato un collegamento fisso. Probabilmente non importerebbe, anche se lo menzionerei.
Basta installare Ghostscript usando Brew con il comando:
brew install gs
Quindi eseguire il comando con tutti i file elencati:
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=merged.pdf source1.pdf source2.pdf source3.pdf
gs
quindi per riferimento futuro questa soluzione sarebbe altrettanto conveniente.
Lo script Python di Apple nell'azione Automator è molto lento, poiché utilizza le API CGPDFDocument di CoreGraphics, piuttosto che il nuovo framework PDFKit. Importa anche l'intera libreria CoreGraphics, anziché solo le API richieste.
Uno script Python più veloce e alternativo può essere trovato qui:
Questo script aggiunge anche un Sommario al PDF, elencando ogni file componente (e unendo ToC esistenti), cosa che Apple non ha.
Può essere utilizzato sulla riga di comando (con nomi di file PDF come argomenti) o in un'azione di script della shell di Automator, per eseguire un'azione / servizio rapidi per il Finder.
time
comando in congiunzione con il joinpdfs.py
copione , il built-in join.py
di script e due file ~ 200 MB ciascuna, la vostra joinpdfs.py
sceneggiatura era 9 secondi più veloce rispetto al built-in join.py
scrittura , con, naturalmente, il vantaggio di avere il TOC intatto . Bello! +1
FWIW, ho scritto un piccolo programma rapido che ti consente di farlo senza dover fare affidamento su dipendenze esterne come il sistema Python e simili. Su github qui: pdfmerge e piuttosto semplice da usare, può passargli un elenco di file PDF da unire pdfmerge in1.pdf in2.pdf ... out.pdf
, passargli un elenco di file da unire in un file di testo come pdfmerge infileslist.txt out.pdf
o semplicemente fare la directory corrente in ordine ABC pdfmerge out.pdf
. L'ho scritto come un progetto di apprendimento, così gratuito e aperto e puoi ottenere l'ultimo binario dalla scheda delle versioni su github.
join.py
script dell'azione Combina pagine PDF in Automator, non è necessario scaricare o installare nient'altro, ma per usare il tuo dovrei scaricarlo e installarlo. Inoltre non ho visto un binario sul link.
sulla base su @Bartosz Petryński s' bella risposta , possiamo fare proprio il minimo cpdf
di utilità in cima GhostScript:
brew install gs
cpdf () {
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="$1" "${@:2}"
}
quindi usalo come:
cpdf merged.pdf file1.pdf file2.pdf file3.pdf
Ho trovato lo strumento coerente della riga di comando PDF come l'opzione migliore. È molto veloce, senza perdita di dati e non rovina l'orientamento o i collegamenti ipertestuali come hanno fatto altre soluzioni. Il formato è:
cpdf file1.pdf file2.pdf -o output.pdf