示例:有一个包含付款单的pdf文件(例如50页),任务是将文件分为付款单,即收到 50 个文件,每个文件都有一张支付卡。我查了很多资料都没有找到解决办法。
尝试过这个:
import pymupdf
doc1 = pymupdf.open("pp_docs.pdf")
doc2 = pymupdf.open()
cnt = 0
for page in doc1:
doc2.insert_pdf(doc1,from_page=cnt, to_page=cnt, final=0)
f_name = 'pdf_'+ str(cnt)+ '.pdf'
doc2.save(f_name)
doc2.close
cnt +=1
doc1.close
结果:生成了 50 个文件,这些文件中不是每个页面,而是由于某种原因生成了一组页面:
- 第一个文件的第一页;
- 第二个与第一个和第二个;
- 第三与第一、第二、第三等
- 最后一个文件包含所有页面。
请告诉我我做错了什么以及如何将文件拆分为单独的页面,即每笔付款都在单独的文件中吗?
错误在于您将所有内容写入一个文件并以不同的名称保存,因为即使在使用 .close() 方法之后,该文件仍保留为包含其所有数据的变量。
移动命令
进入循环:
解释:
问题是您在循环中重复使用同一文档(仅在开始时
doc2创建为空),并逐渐向其中添加下一页和下一页。笔记:
cnt您可以将其用作循环变量,而不是手动操作该变量,即而不是命令使用命令
另一种方法是
.select():尝试图书馆
PyPDF2: