split a multi-page pdf file into multiple pdf files with python?
I missed here a solution where you split the PDF to two parts consisting of all pages so I append my solution if somebody was looking for the same:
from PyPDF2 import PdfFileWriter, PdfFileReaderdef split_pdf_to_two(filename,page_number): pdf_reader = PdfFileReader(open(filename, "rb")) try: assert page_number < pdf_reader.numPages pdf_writer1 = PdfFileWriter() pdf_writer2 = PdfFileWriter() for page in range(page_number): pdf_writer1.addPage(pdf_reader.getPage(page)) for page in range(page_number,pdf_reader.getNumPages()): pdf_writer2.addPage(pdf_reader.getPage(page)) with open("part1.pdf", 'wb') as file1: pdf_writer1.write(file1) with open("part2.pdf", 'wb') as file2: pdf_writer2.write(file2) except AssertionError as e: print("Error: The PDF you are cutting has less pages than you want to cut!")
The PyPDF2 package gives you the ability to split up a single PDF into multiple ones.
import osfrom PyPDF2 import PdfFileReader, PdfFileWriterpdf = PdfFileReader(path)for page in range(pdf.getNumPages()): pdf_writer = PdfFileWriter() pdf_writer.addPage(pdf.getPage(page)) output_filename = '{}_page_{}.pdf'.format(fname, page+1) with open(output_filename, 'wb') as out: pdf_writer.write(out) print('Created: {}'.format(output_filename))
Source: https://www.blog.pythonlibrary.org/2018/04/11/splitting-and-merging-pdfs-with-python/