Jan-11-2022, 07:30 PM
Assuming that your csv file looks something like this:
Set Page, Start Page, End Page 2, 4, 8 2, 10, 14 2, 16, 20Then this will do what you're asking:
from PyPDF2 import PdfFileReader, PdfFileWriter pdf_file_path = 'document.pdf' file_base_name = pdf_file_path.replace('.pdf', '') pdf = PdfFileReader(pdf_file_path) pdfWriter = PdfFileWriter() with open ('page values.csv', 'r') as page_values_file : page_values_file.readline () # dump the header for line in page_values_file : page_values = line.strip ().split (',') setpage = int (page_values [0]) startpage = int (page_values [1]) endpage = int (page_values [2]) for page_num in range(startpage,endpage): pdfWriter.addPage(pdf.getPage(page_num)) with open("%(n)s_subset_%(b)s.pdf" % {'n': format(file_base_name), 'b': setpage }, 'wb') as f: pdfWriter.write(f)