คุณสามารถใช้PyPdf2 s PdfMerger
ชั้น
การต่อไฟล์
คุณสามารถเชื่อมไฟล์โดยใช้append
วิธีการ
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()
คุณสามารถส่งจัดการไฟล์แทนพา ธ ไฟล์ได้หากต้องการ
การรวมไฟล์
หากคุณต้องการควบคุมการรวมแบบละเอียดมากขึ้นมีmerge
วิธีการPdfMerger
ซึ่งช่วยให้คุณระบุจุดแทรกในไฟล์เอาต์พุตซึ่งหมายความว่าคุณสามารถแทรกหน้าใดก็ได้ในไฟล์ append
วิธีการอาจจะคิดว่าเป็นmerge
ที่จุดแทรกเป็นจุดสิ้นสุดของแฟ้ม
เช่น
merger.merge(2, pdf)
ที่นี่เราแทรก pdf ทั้งหมดลงในผลลัพธ์ แต่ที่หน้า 2
ช่วงหน้า
หากคุณต้องการควบคุมว่าจะต่อท้ายหน้าใดจากไฟล์ใดไฟล์หนึ่งคุณสามารถใช้pages
อาร์กิวเมนต์คำหลักของappend
และmerge
ส่งทูเพิลในรูปแบบ(start, stop[, step])
(เช่นrange
ฟังก์ชันปกติ)
เช่น
merger.append(pdf, pages=(0, 3)) # first 3 pages
merger.append(pdf, pages=(0, 6, 2)) # pages 1,3, 5
หากคุณระบุช่วงที่ไม่ถูกต้องคุณจะได้รับIndexError
ไฟล์.
หมายเหตุ:เพื่อหลีกเลี่ยงการเปิดไฟล์ทิ้งไว้PdfFileMerger
ควรเรียกใช้วิธีการปิดเมื่อไฟล์ที่ผสานถูกเขียน เพื่อให้แน่ใจว่าไฟล์ทั้งหมดจะปิด (อินพุตและเอาต์พุต) ในเวลาที่เหมาะสม เป็นเรื่องน่าเสียดายที่PdfFileMerger
ไม่ได้ใช้เป็นตัวจัดการบริบทดังนั้นเราจึงสามารถใช้with
คีย์เวิร์ดหลีกเลี่ยงการโทรปิดอย่างชัดเจนและได้รับความปลอดภัยจากข้อยกเว้นง่ายๆ
คุณอาจต้องการดูpdfcat
สคริปต์ที่ให้ไว้เป็นส่วนหนึ่งของ pypdf2 คุณอาจหลีกเลี่ยงความจำเป็นในการเขียนโค้ดทั้งหมดได้
PyPdf2 github ยังมีโค้ดตัวอย่างบางส่วนที่แสดงการรวมเข้าด้วยกัน