Bagaimana saya bisa menggabungkan / mengonversi beberapa file PDF menjadi satu file PDF besar?
Saya mencoba yang berikut, tetapi konten file target tidak seperti yang diharapkan:
convert file1.pdf file2.pdf merged.pdf
Saya membutuhkan solusi baris perintah (CLI) yang sangat sederhana / dasar. Yang terbaik adalah jika saya dapat menyalurkan output dari penggabungan / konversi langsung ke pdf2ps
(seperti yang awalnya dicoba dalam pertanyaan saya sebelumnya di sini: Linux piping (convert -> pdf2ps -> lp) ).
linux
pdf
merge
command-line-interface
alkohol
sumber
sumber
Jawaban:
Mengingat itu
pdfunite
adalah bagian dari poppler memiliki peluang lebih tinggi untuk diinstal, penggunaannya juga lebih sederhana daripadapdftk
:sumber
pdfunite *.pdf out.pdf
dengan asumsi tidak ada pdf lain di direktori itu dan pesanannya disimpan oleh "*". Jika tidak diawetkan, gunakan rentang: filename_ {0..9} .pdf menyelesaikannya.Coba skrip ghost yang baik:
atau bahkan cara ini untuk versi yang disempurnakan untuk PDF resolusi rendah (terima kasih kepada Adriano karena menunjukkan ini):
Dalam kedua kasus, resolusi ouput jauh lebih tinggi dan lebih baik daripada cara ini menggunakan convert:
Dengan cara ini Anda tidak perlu menginstal apa pun, hanya bekerja dengan apa yang sudah Anda instal di sistem Anda (setidaknya keduanya datang secara default di rhel saya).
Semoga ini membantu,
UPDATE: pertama-tama terima kasih atas semua komentar Anda !! hanya tip yang dapat bekerja untuk kalian, setelah googling, saya menemukan trik luar biasa untuk mengecilkan ukuran PDF, saya mengurangi dengan itu satu PDF dari 300 MB menjadi hanya 15 MB dengan resolusi yang dapat diterima! dan semua ini dengan ghostscript yang bagus, ini dia:
Bersulang!!
sumber
gs
berjalan sangat cepat dan kompres banyak. Namun, kualitasnya meningkat banyak setelah saya menggunakan param ini:-dPDFSETTINGS=/prepress
-dPDFSETTINGS=/prepress
memiliki efek yang sangat bagus dari memutar halaman yang terlalu lebar dan memaksa bilah gulir horizontal yang mengganggu..bash_profile
dan Anda memiliki pintasan yang bagus:pdfmerge() { gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -sOutputFile=$@ ; }
Ini menghemat beberapa ketikan, jika Anda harus sering menggunakan perintah. Penggunaannya terlihat seperti ini:pdfmerge merged.pdf mine1.pdf mine2.pdf
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -sOutputFile=merged.pdf mine1.pdf mine2.pdf
dapat dipersingkat dengangs -q -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -o merged.pdf mine1.pdf mine2.pdf
. Dari Dokumentasi : "Sebagai istilah praktis yang mudah digunakan, Anda dapat menggunakan-o
opsi yang diikuti oleh spesifikasi file keluaran seperti dibahas di atas.-o
Opsi ini juga mengatur opsi-dBATCH
dan-dNOPAUSE
. Ini dimaksudkan sebagai cara cepat untuk memohonghostscript
untuk mengkonversi satu atau lebih file input."Maaf, saya berhasil menemukan jawabannya sendiri menggunakan google dan sedikit keberuntungan :)
Bagi mereka yang tertarik;
Saya menginstal pdftk (pdf toolkit) di server debian kami, dan menggunakan perintah berikut ini, saya mencapai hasil yang diinginkan:
ATAU
Ini pada gilirannya dapat disalurkan langsung ke pdf2ps.
sumber
gs -q -sPAPERSIZE=letter -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=out.pdf in1.pdf in2.pdf in3.pdf ...
pdftk file1.pdf file2.pdf cat output out.pdf
akan menampilkan file yang digabungkan sebagaiout.pdf
pdftk
tidak tersedia untuk sistem EL7 karena tidak adanya ketergantunganlibgcj
.Ini adalah solusi termudah jika Anda memiliki banyak file dan tidak ingin mengetikkan nama satu per satu:
qpdf --empty --pages *.pdf -- out.pdf
sumber
Juga
pdfjoin a.pdf b.pdf
akan membuat yang barub-joined.pdf
dengan isi a.pdf dan b.pdfsumber
Anda dapat menggunakan perintah convert secara langsung,
misalnya
sumber
convert -compress lossless sub1.pdf sub2.pdf sub3.pdf merged.pdf
, tetapi ukuran file yang dihasilkan bisa terlalu besar. Saya sarankanconvert -compress jpeg -quality 90 sub1.pdf sub2.pdf sub3.pdf merged.pdf
sebagai gantinya.pdfunite
boleh menggabungkan seluruh PDF. Jika Anda ingin, misalnya, halaman 2-7 dari file1.pdf dan halaman 1,3,4 dari file2.pdf, Anda harus menggunakanpdfseparate
untuk membagi file menjadi PDF terpisah untuk setiap halamanpdfunite
.Pada titik itu Anda mungkin menginginkan program dengan lebih banyak opsi.
qpdf
adalah utilitas terbaik yang saya temukan untuk memanipulasi PDF.pdftk
lebih besar dan lebih lambat dan Red Hat / Fedora tidak mengemasnya karena ketergantungannya pada gcj. Utilitas PDF lainnya memiliki dependensi Mono atau Python. Saya menemukanqpdf
menghasilkan file output yang jauh lebih kecil daripada menggunakanpdfseparate
danpdfunite
untuk merakit halaman menjadi 30-halaman output PDF, 970kB vs 1.6450 kB. Karena ia menawarkan lebih banyak opsi,qpdf
baris perintah tidak sesederhana itu; permintaan asli untuk menggabungkan file1 dan file2 dapat dilakukan dengansumber
pdftk
lagi karena tergantung padagcj
, untuk mana dukungan telah jatuh saya percaya. Meskipun mencari alat manipulasi pdf viapacman -Ss pdf
, saya melewatkan ini. Terima kasih atas jawaban ini! Saya harus menerima lebih banyak upvotes, sehingga muncul tepat di sebelah saran untukpdfunite
ataupdftk
.Apache PDFBox http://pdfbox.apache.org/
PDFMerger Aplikasi ini akan mengambil daftar dokumen pdf dan menggabungkannya, menyimpan hasilnya dalam dokumen baru.
sumber
Gunakan alat PDF dari python https://pypi.python.org/pypi/pdftools/1.0.6
Unduh file tar.gz dan buka kompres dan jalankan perintah seperti di bawah ini
Anda harus menginstal pyhton3 sebelum Anda menjalankan perintah di atas
Alat ini mendukung hal-hal di bawah ini
Anda dapat menemukan rincian lebih lanjut di tautan di bawah ini dan ini merupakan open source
https://github.com/MrLeeh/pdftools
sumber
gs
(semua varian yang tercantum di atas), penggabungan sederhana dari dua PDF, 2MB dan 500Kb, membutuhkan waktu beberapa menit untuk diselesaikan dan menghasilkan file 40MB!pdftools
menyelesaikan secara instan dengan ukuran file yang identik.Anda dapat menggunakan sejda-console , gratis dan open source. Buka zip dan jalankan
sejda-console merge -f file1.pdf file2.pdf -o merged.pdf
Ini mempertahankan bookmark, anotasi tautan, acroforms dll. Sebenarnya memiliki cukup banyak opsi yang dapat Anda mainkan, jalankan
sejda-console merge -h
untuk melihat semuanya.sumber
Jika Anda ingin mengubah semua gambar yang diunduh menjadi satu pdf kemudian jalankan
convert img{0..19}.jpg slides.pdf
sumber
Saya
pdfunite
merekomendasikan kedua . Namun saya mendapatkanArgument list too long
kesalahan karena saya mencoba untuk menggabungkan file PDF> 2k.Saya beralih ke Python untuk ini dan dua paket eksternal: PyPDF2 (untuk menangani semua hal yang berhubungan dengan PDF) dan natsort (untuk melakukan semacam "alami" nama file direktori). Dalam hal ini dapat membantu seseorang:
sumber
date +%s
.pdf' && pdfunite output - *. pdf output.pdf (Ini akan membuat kumpulan 500 file yang diproses secara seri, membuat file sementara yang dihasilkan diurutkan dalam urutan yang benar. , dan menghasilkan file output yang sesuai; Anda harus membersihkan file sementara setelah)Inilah metode yang saya gunakan yang berfungsi dan mudah diterapkan. Hal ini akan membutuhkan kedua fpdf dan FPDI perpustakaan yang dapat didownload di sini:
sumber
Saya bias menjadi salah satu pengembang PyMuPDF (pengikatan Python MuPDF).
Anda dapat dengan mudah melakukan apa yang Anda inginkan dengannya (dan banyak lagi). Kode kerangka berfungsi seperti ini:
Itu saja. Beberapa opsi tersedia untuk memilih hanya rentang halaman, mempertahankan daftar isi bersama, membalik urutan halaman atau mengubah rotasi halaman, dll., Dll.
Kami berada di Pypi.
sumber
Saya suka ide Chasmo, tetapi saya lebih suka menggunakan kelebihan dari hal-hal seperti
Memberi banyak file sumber untuk
convert
mengarahkan penggabungannya ke dalam pdf umum. Perintah ini menggabungkan semua file dengan.pdf
ekstensi di direktori aktual kemerged.pdf
dalam direktori induk.sumber
$(ls *.pdf)
wildcard sederhana*.pdf
?ls *.pdf
wildcard Anda kehilangan kontrol atas urutan file yang digabungkan. Dalam sebuah contoh, daftar berikut: 1.pdf, 2.pdf, 3.pdf, ..., 10.pdf, ..., 100.pdf sebenarnya akan digabung seperti 1.pdf, 10.pdf, 100. pdf, 2.pdf, 3.pdf (karena cara pemesanan file Linux standar - di sini Anda memiliki detail lebih lanjut tentang masalah ini - stackoverflow.com/q/22948042/1977012 ).Meskipun ini bukan solusi baris perintah, ini dapat membantu
macos
pengguna:sumber
Anda dapat melihat menggunakan pdftools sumber gratis dan terbuka (disclaimer: Saya adalah penulisnya).
Ini pada dasarnya adalah antarmuka Python ke
pdfpages
paket Lateks .Untuk menggabungkan file pdf satu per satu, Anda dapat menjalankan:
Untuk menggabungkan semua file pdf dalam direktori, Anda dapat menjalankan:
sumber