Come posso combinare più PDF utilizzando la riga di comando?

31

Esiste un quick one-liner per combinare più pdf in uno?

So che può essere fatto usando Preview.app

    
posta reacuna 09.03.2016 - 21:28
fonte

4 risposte

46

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.

    
risposta data 09.03.2016 - 23:02
fonte
16

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
    
risposta data 27.07.2017 - 22:11
fonte
1

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.

    
risposta data 18.01.2019 - 19:40
fonte
0

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.

    
risposta data 18.01.2019 - 18:08
fonte

Leggi altre domande sui tag