此代码主要解决批量合并PDF文件的问题,按照文件顺序的前提文件名按数字命名如(1.pdf、2.pdf....),可以通过修改数量得到自己想要的合并效果。需要能帮助到大家!
在运行前要确保安装了PyMuPDF包
pip install PyMuPDF
import os
import fitz
import glob
import re
# 需要合并的PDF文件所在的目录
pdf_directory = "F:\\8.22\\PDF"
# 使用 glob 模块获取目录下所有PDF文件路径
pdf_files = glob.glob(os.path.join(pdf_directory, "*.pdf"))
def sort_key(file_path):
base_name = os.path.basename(file_path)
match = re.search(r'\d+', base_name)
if match:
return int(match.group())
return base_name
pdf_files.sort(key=sort_key)
# 每批处理的文件数量
batch_size = 100
# 记录错误信息
error_files = []
# 分批合并PDF文件
for batch_index in range(0, len(pdf_files), batch_size):
batch_files = pdf_files[batch_index:batch_index + batch_size]
# 初始化 output_pdf
output_pdf = fitz.open()
# 按照排序后的顺序合并当前批次的PD