龙空技术网

PDF页面分割删除超简单:怎么用python分拆PDF大文件?

爱阅读 136

前言:

现时小伙伴们对“python 拆分文件”大致比较珍视,兄弟们都想要了解一些“python 拆分文件”的相关内容。那么小编在网络上汇集了一些关于“python 拆分文件””的相关文章,希望同学们能喜欢,看官们快快来了解一下吧!

最近整合有朋友需要问我,怎么把一个200多个的PDF文件,分割成10个小的PDF,每个小的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页

小伙伴们,是不是很简单呢?本次就分享到这里,欢迎点赞、收藏、转发。

如需免费获取PDF处理方法,请评论去留言:方法

标签: #python 拆分文件