最近整合有朋友需要问我python列表分割,怎么把一个200多个的PDF文件,分割成10个小的PDFpython列表分割,每个小的PDF10也呢?其实,使用python就容易就能完成,超级简单。
PDF 文档格式可移植文档格式(PDF)属于最常用的数据格式,因此在工作中经常就会涉及处理 pdf 文件的处理,因此掌握一直快速处理方法十分必要。目前python 支持处理PDF的库主要有 PyPDF2,pyPdf ,pdfminer3k , PyMuPDF等,他们都可以进行PDF文件的读、写、分割、合并和PDF文件转换等多种操作,今天主要讲一下MuPDF处理PDF的方法。
PDF大文件,怎么根据PDF页面数、均等的拆分成多个PDF文件呢?
这里主要是完成PDF文件的拆分,然后保存到新的PDF当中去,方法如下:
### PDF文件拆分
def pdf_segment(pdf_path:str, seg_num =10, output_dir=os.getcwd()):
""" PDF 文件拆分
pdf_path: pdf 路径
seg_num: 指定拆分后PDF页数
output_dir: 拆分结果保存位置
"""
pdf_doc = fitz.open(pdf_path)
num_page = pdf_doc.pageCount ## 获取PDF文件总页数
pages = [i for i in range(0, num_page, seg_num)]
for i, pages_start in enumerate(pages):
pages_end = pages_start + seg_num - 1
dist_pdf = fitz.open()
dist_pdf.insert_pdf(pdf_doc, from_page=pages_start,to_page=pages_end)
pdf_name = os.path.basename(pdf_path)
savepdf = os.path.join(output_dir, f"{os.path.splitext(pdf_name)[0]}_{i}-{pages_start}-{pages_end}.pdf")
dist_pdf.save(savepdf)
print(f"结果保存在:{savepdf}")
示例:目前原始《天才在左疯子在右》PDF 266页,希望拆分成每个10页左右的小PDF文件。
拆分后的结果:
2.怎么删除PDF指定的页面?
示例:目前原始《天才在左疯子在右》PDF 266页,希望删除PDF当中的第1~5页和第8页和第11页,怎么处理呢?示例方法如下:
doc.delete_pages(500, 519)
doc.delete_pages(from_page=500, to_page=519)
doc.delete_pages((500, 501, 502, … , 519))
doc.delete_pages(range(500, 520))
del doc[500:520]
del doc[(500, 501, 502, … , 519)]
del doc[range(500, 520)]
#### 删除PDF指定页面
def delete(pdf_path:str, pageList, output_dir):
"""
PDF页面删除, pageList: 删除页面列表
"""
pdf_doc = fitz.open(pdf_path)
pdf_name = os.path.basename(pdf_path)
savepdf = os.path.join(output_dir, pdf_name)
pdf_doc.delete_pages(pageList)
pdf_doc.save(savepdf)
原始PDF删除第1~5页和第8页和第11页 后的结果:
原始PDF vs 删除第1~5页和第8页和第11页
———END———
限 时 特 惠:本站每日持续更新海量各大内部创业教程,一年会员只需128元,全站资源免费下载点击查看详情
站 长 微 信:jiumai99