使用Python批量合并多个PDF文档
一、引言
在日常办公中,我们经常遇到需要处理大量文件的情况,尤其是当这些文件是PDF格式时。手动合并这些文件不仅耗时而且容易出错。幸运的是,通过Python及其强大的库,我们可以轻松实现自动化办公,提高工作效率。本文将介绍如何使用PyPDF2
库来批量合并一个文件夹中的所有PDF文档。
二、准备工作
1. 安装所需库
首先确保安装了PyPDF2
库。如果还没有安装,可以通过以下命令进行安装:
pip install PyPDF2
2. 准备文件
请准备好一个包含要合并的PDF文件的文件夹,并确保该文件夹与脚本位于同一目录下,或者指定正确的路径。例如,我们将这个文件夹命名为pdfs
。
三、编写代码
接下来,让我们一步步地编写用于合并PDF文档的Python脚本。
1. 导入必要的模块
import os
from PyPDF2 import PdfReader, PdfWriter
这里我们导入了os
模块来处理文件路径,以及PyPDF2
库中的PdfReader
和PdfWriter
类。
2. 定义合并函数
def merge_pdfs(input_folder, output_path):
# 创建一个PdfWriter对象以构建最终的PDF文件
pdf_writer = PdfWriter()
# 遍历输入文件夹内的所有文件
for filename in os.listdir(input_folder):
if filename.endswith('.pdf'):
filepath = os.path.join(input_folder, filename)
# 使用PdfReader读取每个PDF文件
with open(filepath, 'rb') as file:
pdf_reader = PdfReader(file)
# 将当前PDF文件中的每一页添加到writer对象中
for page_num in range(len(pdf_reader.pages)):
page = pdf_reader.pages[page_num]
pdf_writer.add_page(page)
PdfWriter()
初始化了一个新的PDF写入器。os.listdir(input_folder)
获取文件夹内所有文件名。if filename.endswith('.pdf'):
检查文件是否为PDF。with open(filepath, 'rb') as file:
打开文件并读取内容。PdfReader(file)
创建一个PDF阅读器实例。- 循环遍历PDF的所有页面并将它们添加到
pdf_writer
中。
3. 写入输出文件
# 将所有页面写入输出文件
with open(output_path, 'wb') as out:
pdf_writer.write(out)
这一步将所有收集到的页面写入到一个新的PDF文件中。
4. 主程序入口
# 指定输入文件夹和输出文件路径
input_folder = 'pdfs' # 假设该文件夹与脚本在同一目录下
output_file = 'merged_document.pdf'
# 调用函数执行合并操作
merge_pdfs(input_folder, output_file)
print(f"已成功合并文件至 {output_file}")
这里设置了输入文件夹和输出文件的路径,并调用了之前定义的merge_pdfs
函数。
四、运行脚本
保存上述代码为merge_pdfs.py
,然后通过命令行运行它:
python merge_pdfs.py
这样就能自动合并指定文件夹下的所有PDF文件,并生成一个名为merged_document.pdf
的新文件。
五、总结
通过以上步骤,你已经学会了如何利用Python来批量合并PDF文件,这对于处理大量的PDF文档来说是一个非常实用的小工具。如果你有任何疑问或想要进一步扩展功能,请随时留言讨论。