Jawaban:
Lihat "Menggabungkan file PDF pada baris perintah di OSX" di Menggabungkan File PDF di OS X Dari Baris Perintah .
Ternyata dari Tiger dan seterusnya, OSX dikirimkan dengan skrip Python yang melakukan apa yang Anda butuhkan. Script sudah dapat dieksekusi, dan Python sudah diinstal pada OS X, jadi yang perlu Anda lakukan untuk menjalankannya adalah membuka Terminal dan mengetik
"/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
Juga pada halaman tertaut itu menyarankan membuat tautan simbolis untuk join.py
file untuk membuat pengetikan lebih mudah namun mereka menghapus -s
dalam ln -s ... ...
, dan tanpa itu, tautan keras dibuat. Mungkin tidak masalah, meskipun saya akan menyebutkannya.
Cukup instal Ghostscript menggunakan Brew dengan perintah:
brew install gs
Kemudian jalankan perintah dengan semua file yang terdaftar:
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=merged.pdf source1.pdf source2.pdf source3.pdf
gs
jadi untuk referensi di masa depan solusi ini akan sama nyamannya .
Skrip python Apple dalam aksi Automator sangat lambat, karena menggunakan CGPDFDocument API CoreGraphics, daripada kerangka kerja PDFKit yang lebih baru. Itu juga mengimpor seluruh perpustakaan CoreGraphics, bukan hanya API yang diperlukan.
Alternatif, skrip python yang lebih cepat, dapat ditemukan di sini:
Skrip ini juga menambahkan Daftar Isi ke PDF, mencantumkan setiap file komponen (dan menggabungkan ToC yang ada), yang tidak dimiliki Apple.
Ini dapat digunakan pada baris perintah (dengan nama file PDF sebagai argumen), atau dalam tindakan skrip shell Automator, untuk membuat Tindakan / Layanan Cepat untuk Finder.
time
perintah bersama dengan joinpdfs.py
skrip Anda , skrip join.py
bawaan dan dua file masing-masing ~ 200 MB, joinpdfs.py
skrip Anda 9 detik lebih cepat dari join.py
skrip bawaan , dengan tentu saja manfaat tambahan dari memiliki TOC utuh. . Bagus! +1
FWIW, saya telah menulis sebuah program kecil cepat yang memungkinkan Anda melakukan ini tanpa harus bergantung pada dependensi eksternal seperti sistem python dan semacamnya. Pada github di sini: pdfmerge dan cukup mudah digunakan, dapat meneruskannya daftar file PDF untuk digabungkan pdfmerge in1.pdf in2.pdf ... out.pdf
, memberikannya daftar file untuk digabung dalam file teks seperti pdfmerge infileslist.txt out.pdf
atau hanya melakukan direktori saat ini dalam urutan ABC dengan pdfmerge out.pdf
. Saya menulisnya sebagai proyek pembelajaran, begitu bebas dan terbuka dan Anda bisa mendapatkan biner terbaru dari tab rilis di github.
join.py
skrip dari tindakan Combine PDF Pages di Automator, tidak ada lagi yang perlu diunduh atau diinstal, namun untuk menggunakan Anda saya harus unduh dan pasang. Juga tidak melihat biner di tautan.
membangun pada @Bartosz Petryński 's jawaban yang bagus , kita bisa membuat minimal sendiri cpdf
utilitas di atas GhostScript:
brew install gs
cpdf () {
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="$1" "${@:2}"
}
lalu gunakan seperti:
cpdf merged.pdf file1.pdf file2.pdf file3.pdf
Saya menemukan Alat Baris Perintah Coherent PDF gratis untuk menjadi pilihan terbaik. Ini sangat cepat, tanpa kehilangan, dan tidak mengacaukan orientasi atau hyperlink seperti yang dilakukan beberapa solusi lain. Formatnya adalah:
cpdf file1.pdf file2.pdf -o output.pdf