PyPDF2切割单页为两页
# -*- coding: UTF-8 -*- from PyPDF2 import PdfFileReader, PdfFileWriter import os def split_pdf(infile, out_path): """ :param infile: 待拆分的pdf文件 :param out_path: 拆分成单页的pdf文件的存储路径 :return: 无 """ if not os.path.exists(out_path): os.makedirs(out_path) with open(infile, 'rb') as infile: pdfReader = PdfFileReader(infile) number_of_pages = pdfReader.getNumPages() #计算此PDF文件中的页数 for i in range(number_of_pages): page = pdfReader.getPage(i) width = float(page.mediaBox.getWidth()) height = float(page.mediaBox.getHeight()) #print("width:"+str(width)+" Height"+str(height)) #top page pdfReader=PdfFileReader(infile) #一定要重新读取,要不会报错。 pdfWriter = PdfFileWriter() #循环创建空白的pdf page_top = pdfReader.getPage(i) page_top.mediaBox.lowerLeft = (0,height/2) page_top.mediaBox.lowerRight = (width,height/2) page_top.mediaBox.upperLeft = (0,height) page_top.mediaBox.upperRight = (width,height) pdfWriter.addPage(page_top) out_file_name = out_path + str(i+1)+'_top.pdf' with open(out_file_name, 'wb') as outfile: pdfWriter.write(outfile) #bottom page pdfReader=PdfFileReader(infile) #一定要重新读取,要不会报错。 pdfWriter = PdfFileWriter() #循环创建空白的pdf page_buttom = pdfReader.getPage(i) page_buttom.mediaBox.lowerLeft = (0,0) page_buttom.mediaBox.lowerRight = (width,0) page_buttom.mediaBox.upperLeft = (0,height/2) page_buttom.mediaBox.upperRight = (width,height/2) pdfWriter.addPage(page_buttom) out_file_name = out_path + str(i+1)+'_bottom.pdf' with open(out_file_name, 'wb') as outfile: pdfWriter.write(outfile) if __name__ == '__main__': in_File = './1.pdf' out_Path = './Single/' # 生成输出文件夹 split_pdf(in_File, out_Path)