Esiste un quick one-liner per combinare più pdf in uno?
So che può essere fatto usando Preview.app
Dai un'occhiata a "Combinare i file PDF sulla riga di comando in OSX" in Unire file PDF in OS X dalla riga di comando .
It turns out that from Tiger onwards, OSX ships with a Python script that does exactly what you need. The script is already executable, and Python is pre-installed on OS X, so all you need to do to run it is opening the Terminal and typing
"/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 nella pagina collegata suggerisce di creare un collegamento simbolico per il file join.py
per semplificare la digitazione, ma omettono -s
in ln -s ... ...
, e senza di esso viene creato un collegamento fisico. Probabilmente non avrebbe importanza, comunque ne parlerei.
Installa Ghostscript usando il comando Brew con:
brew install gs
Quindi esegui il comando con tutti i file elencati:
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=merged.pdf source1.pdf source2.pdf source3.pdf
Lo script Python di Apple nell'azione di Automator è molto lento, in quanto utilizza le API CGPDFDocument di CoreGraphics, anziché il più recente framework PDFKit. Importa anche l'intera libreria CoreGraphics, anziché solo le API richieste.
Uno script python alternativo e più veloce, può essere trovato qui:
Questo script aggiunge anche un sommario al PDF, elencando ogni file componente (e unendo i ToC esistenti), che non è quello di Apple.
Può essere utilizzato sulla riga di comando (con nomi file PDF come argomenti) o in un'azione script della shell di Automator per creare un'azione / servizio rapido per il Finder.
FWIW, ho scritto un piccolo programma veloce che ti permette di fare ciò senza dover fare affidamento su dipendenze esterne come il python di sistema e così via. Su github qui: pdfmerge e abbastanza semplice da usare, puoi passarlo un elenco di file PDF da unire con pdfmerge in1.pdf in2.pdf ... out.pdf
, passare è un elenco di file da unire in un file di testo come pdfmerge infileslist.txt out.pdf
o semplicemente fare la directory corrente nell'ordine ABC con pdfmerge out.pdf
. L'ho scritto come un progetto di apprendimento, così libero e aperto e puoi ottenere l'ultimo binario dalla scheda rilasciazioni su github.
Leggi altre domande sui tag command-line pdf