Các PyPdf2 thư viện mới có một lớp PdfMerger
, có thể được sử dụng như vậy.
dụ:
from PyPDF2 import PdfFileMerger
pdfs = ['file1.pdf', 'file2.pdf', 'file3.pdf', 'file4.pdf']
merger = PdfFileMerger()
for pdf in pdfs:
merger.append(open(pdf, 'rb'))
with open('result.pdf', 'wb') as fout:
merger.write(fout)
Phương pháp append
dường như đòi hỏi một đối tượng file lười biếng. Đó là nó không đọc tập tin ngay lập tức. Dường như đợi cho đến khi phương thức write
được gọi. Nếu bạn sử dụng một phạm vi mở (ví dụ: with
), nó sẽ thêm các trang trống vào tệp kết quả, vì tệp đầu vào được đóng tại điểm đó.
Cách dễ nhất để tránh điều này nếu thời gian xử lý tệp là một vấn đề, là vượt qua append
chuỗi tên tệp và cho phép tệp đó xử lý thời lượng tệp.
ví dụ:
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")
Nguồn
2016-06-21 13:12:13
Và bây giờ, https://pypi.python.org/pypi/PyPDF2 đó là dự án kế PyPDF –
@ Iago-Lito tìm dưới đây để [này] (https://stackoverflow.com/a/37945454/1540468) trả lời. –