胡兄今天早上突然问我会不会把pdf拆开和合并,原来是ren老师要提交文献列表之类的东西…我本着偷懒便捷的办法打开了搜索引擎,了解了一下相关软件,emmmmmmmmm,结果不是让付费就是2M以上文件不让打开,反正就是辣鸡的不行。
早就知道Python有个库PyPDF2可以简单处理这些了…那就pip一下给他处理了
这个需求比较简单,把一个PDF的首页末页成另一个PDF的封皮和末页
from PyPDF2 import PdfFileReader, PdfFileWriter
被拆开的叫
检索结果扫描2021.3.8.pdf
被合并的叫
./近五年3-8.pdf
定义两个函数
#拆开
def split(path, name_of_split):
pdf = PdfFileReader(path)
for page in range(pdf.getNumPages()):
pdf_writer = PdfFileWriter()
pdf_writer.addPage(pdf.getPage(page))
output = f'{name_of_split}{page}.pdf'
with open(output, 'wb') as output_pdf:
pdf_writer.write(output_pdf)
#合并
def merge_pdfs(paths, output):
pdf_writer = PdfFileWriter()
for path in paths:
pdf_reader = PdfFileReader(path)
for page in range(pdf_reader.getNumPages()):
# 把每张PDF页面加入到这个可读取对象中
pdf_writer.addPage(pdf_reader.getPage(page))
# 把这个已合并了的PDF文档存储起来
with open(output, 'wb') as out:
pdf_writer.write(out)
然后直接使用
path = r'./检索结果扫描2021.3.8.pdf'
split(path, '拆开')
paths = ['./拆开0.pdf', './近五年3-8.pdf','./拆开1.pdf']
merge_pdfs(paths, output='hml要的.pdf')
文件都在.ipynb同目录下,检查文件符合要求。