Anda dapat menggunakan PyPdf2 s PdfMerger
kelas.
File Concatenation
Anda cukup menggabungkan file dengan menggunakan append
metode ini.
from PyPDF2 import PdfFileMerger
pdfs = ['file1.pdf', 'file2.pdf', 'file3.pdf', 'file4.pdf']
merger = PdfFileMerger()
for pdf in pdfs:
merger.append(pdf)
merger.write("result.pdf")
merger.close()
Anda dapat meneruskan file menangani sebagai gantinya jalur file jika Anda mau.
Penggabungan File
Jika Anda ingin kontrol penggabungan yang lebih halus, ada merge
metode PdfMerger
, yang memungkinkan Anda menentukan titik penyisipan dalam file output, yang berarti Anda dapat memasukkan halaman di mana saja di file. The append
Metode dapat dianggap sebagai merge
mana titik penyisipan adalah akhir file.
misalnya
merger.merge(2, pdf)
Di sini kami memasukkan seluruh pdf ke dalam output tetapi di halaman 2.
Rentang Halaman
Jika Anda ingin mengontrol halaman mana yang ditambahkan dari file tertentu, Anda dapat menggunakan pages
argumen kata kunci dari append
dan merge
, meneruskan tupel dalam formulir (start, stop[, step])
(seperti range
fungsi biasa ).
misalnya
merger.append(pdf, pages=(0, 3)) # first 3 pages
merger.append(pdf, pages=(0, 6, 2)) # pages 1,3, 5
Jika Anda menentukan rentang yang tidak valid, Anda akan mendapatkan IndexError
.
Catatan: juga untuk menghindari file dibiarkan terbuka, metode PdfFileMerger
s close harus dipanggil ketika file yang digabungkan telah ditulis. Ini memastikan semua file ditutup (input dan output) pada waktu yang tepat. Ini memalukan karena PdfFileMerger
tidak diimplementasikan sebagai pengelola konteks, jadi kita dapat menggunakan with
kata kunci, menghindari panggilan tutup eksplisit dan mendapatkan keamanan pengecualian yang mudah.
Anda mungkin juga ingin melihat pdfcat
skrip yang disediakan sebagai bagian dari pypdf2. Anda berpotensi menghindari kebutuhan untuk menulis kode sama sekali.
Github PyPdf2 juga menyertakan beberapa kode contoh yang menunjukkan penggabungan.