经常有需要将多个pdf按顺序合并为一个pdf的需求,但通过某些工具实现需要交米,如何不交米也能实现呢?
这里废话不多说,直接上代码,已实测跑通,有问题你找我。
import os
from PyPDF2 import PdfReader, PdfWriter
def traverse_folder(path):
result = []
for root, dirs, files in os.walk(path):
# 处理当前目录下的所有文件
for file in files:
if file.lower().endswith('.pdf'): # 确保只处理PDF文件
file_path = os.path.join(root, file)
result.append(file_path)
return result
# 调用函数进行测试
folder_path = r"C:\Users\Administrator\Desktop\医疗发票" #输入需要合并的pdf存放的文件夹地址
result_list = traverse_folder(folder_path)
print(result_list)
pdf_writer = PdfWriter()
for i in result_list:
pdf_reader = PdfReader(i)
pages = len(pdf_reader.pages) # 使用len(reader.pages)获取页数
for j in range(pages):
content = pdf_reader.pages[j] # 使用reader.pages[page_number]获取页面对象
pdf_writer.add_page(content) # 注意这里应该是add_page,PyPDF2中的方法是add_page而不是addPage
with open(r"C:\Users\Administrator\Desktop\医疗发票\合集.pdf", "wb") as p: #输入合并后pdf到处地址(含文件名)
pdf_writer.write(p)