该代码的目的是将指定文件夹中的所有PDF文件按字母顺序合并成一个PDF文件,并将其保存到该文件夹中。代码首先要求用户输入源文件路径文件夹,然后遍历该文件夹中的所有PDF文件并将其添加到一个列表中。接下来,代码按字母顺序对PDF文件进行排序,然后使用PdfMerger对象将它们合并。在合并过程中,代码还为每个PDF文件添加了一个大纲项,以便在合并后的PDF文件中创建书签。最后,代码将合并后的PDF文件保存到源文件路径文件夹中,并输出“PDF文件合并成功!”的消息。
# 导入必要的库
import os
from PyPDF2 import PdfReader, PdfFileWriter, PdfMerger
# 设置目录路径
dir_path = input("输入源文件路径文件夹:")
# 创建空列表以存储PDF文件
pdfs = []
# 循环遍历目录并将PDF文件添加到列表中
for filename in os.listdir(dir_path):
if filename.endswith('.pdf'):
pdfs.append(os.path.join(dir_path, filename))
# 按字母顺序排序PDF文件
pdfs.sort()
# 创建PdfMerger对象
merger = PdfMerger()
# 循环遍历PDF文件并将它们合并
total_pages = 0
for pdf in pdfs:
with open(pdf, 'rb') as f:
pdf_reader = PdfReader(f)
merger.append(pdf_reader)
merger.add_outline_item(os.path.basename(pdf), total_pages )
total_pages += len(pdf_reader.pages)
# 将合并后的PDF保存到文件中
with open(os.path.join(dir_path, os.path.basename(dir_path) + '.pdf'), 'wb') as f:
merger.write(f)
# 关闭PdfMerger对象
merger.close()
print('PDF文件合并成功!')