刚好需要合并几个PDF文件,奈何破电脑没装各种PDF编辑器,于是乎想到了超级强大的python,借助PyPDF2可以实现多个PDF的合并。
代码如下:
import os
from PyPDF2 import PdfFileMerger
def merge_pdf(pdf_path):
pdf_lst = [f for f in os.listdir(pdf_path) if f.endswith('.pdf')]
pdf_lst = [os.path.join(pdf_path, pdf_name) for pdf_name in pdf_lst]
pdf_merger = PdfFileMerger() # 实例化
for pdf in pdf_lst: # 逐个读取需要合并的pdf文件
with open (pdf, 'rb') as input:
pdf_merger.append(input)
with open ('output.pdf','wb') as output:
pdf_merger.write(output) # 将多个pdf文件合并后保存为output.pdf
if __name__ == '__main__':
pdf_path = r'pre_pdf' # 相对路径,多个需要合并的pdf文件存放在pre_pdf文件夹下
merge_pdf(pdf_path)
- pdf_path是输入文件夹的相对路径,该文件夹中可以存放多个需要参与合并的PDF文件。也可以使用绝对路径。
- PdfFileMerger是一个class,需要实例化一个对象。
pdf_merger = PdfFileMerger()
- 使用with open是因为:即便在文件读写过程中发生IO异常,也会自动调用.close()方法,关闭文件,比open()更先进。