คุณสามารถใช้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 ยังมีโค้ดตัวอย่างบางส่วนที่แสดงการรวมเข้าด้วยกัน