有的时候有剪裁PDF的需求,虽然有软件实现了这样的功能,但有时候会遇到这种情况
既然如此,为何不自己实现这个功能呢?上代码
#导入读写pdf模块fromPyPDF2importPdfFileReader,PdfFileWriter'''注意:页数从0开始索引range()是左闭右开区间'''defsplit_pdf(file_name,start_page,end_page,output_pdf):''':paramfile_name:待分割的pdf文件名:paramstart_page:执行分割的开始页数:paramend_page:执行分割的结束位页数:paramoutput_pdf:保存切割后的文件名'''#读取待分割的pdf文件input_file=PdfFileReader(open(file_name,'rb'))#实例一个PDF文件编写器output_file=PdfFileWriter()#把分割的文件添加在一起foriinrange(start_page,end_page):output_file.addPage(input_file.getPage(i))#将分割的文件输出保存withopen(output_pdf,'wb')asf:output_file.write(f)defmerge_pdf(merge_list,output_pdf):"""merge_list:需要合并的pdf列表output_pdf:合并之后的pdf名"""#实例一个PDF文件编写器output=PdfFileWriter()formlinmerge_list:pdf_input=PdfFileReader(open(ml,'rb'))page_count=pdf_input.getNumPages()foriinrange(page_count):output.addPage(pdf_input.getPage(i))output.write(open(output_pdf,'wb'))if__name__=='__main__':#分割pdfsplit_pdf("test.pdf",0,3,"0-2.pdf")split_pdf("test.pdf",7,12,"7-11.pdf")split_pdf("test.pdf",18,23,"18-22.pdf")split_pdf("test.pdf",27,33,"26-32.pdf")split_pdf("test.pdf",40,44,"40-43.pdf")split_pdf("test.pdf",46,51,"46-50.pdf")split_pdf("test.pdf",58,66,"58-65.pdf")split_pdf("test.pdf",77,84,"77-83.pdf")split_pdf("test.pdf",93,97,"93-96.pdf")split_pdf("test.pdf",102,106,"102-105.pdf")#合并pdf#合并的pdf列表pdf_list=["0-2.pdf","7-11.pdf","18-22.pdf","26-32.pdf","40-43.pdf","46-50.pdf","58-65.pdf","77-83.pdf","93-96.pdf","102-105.pdf"]merge_pdf(pdf_list,"all.pdf")
当然上面的代码一开始不能直接运行,但不要着急,参照参考资料中的报错链接将问题解决,就可以运行了。
参考资料:
报错:
/kmesky/article/details/102695520
代码:
/wnma3mz/article/details/78823195
往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑AI基础下载机器学习的数学基础专辑获取本站知识星球优惠券,复制链接直接打开:/qFiUFMV本站qq群70425。加入微信群请扫码: