有时候扫描了一堆文件形成一个pdf文件,但最后需要每页文件都另存为一个pdf,用以下代码可以实现。
import os
from PyPDF2 import PdfReader, PdfWriter
def split_pdf(input_pdf_path):
# Ensure PyPDF2 is installed: pip install PyPDF2
# 读取输入PDF文件
input_pdf = PdfReader(input_pdf_path)
# 获取PDF文件的基本名称(不带扩展名)
file_base_name = os.path.splitext(os.path.basename(input_pdf_path))[0]
# 获取PDF文件所在的目录路径
output_dir = os.path.dirname(input_pdf_path)
# 遍历PDF文件的每一页
for page_num in range(len(input_pdf.pages)):
# 创建一个新的PdfWriter对象
pdf_writer = PdfWriter()
# 将当前页添加到PdfWriter对象中
pdf_writer.add_page(input_pdf.pages[page_num])
# 生成输出PDF文件的路径,文件名为原文件名加上页码后缀
output_pdf_path = os.path.join(output_dir, f"{file_base_name}_page_{page_num + 1}.pdf")
# 打开输出PDF文件并写入当前页的内容
with open(output_pdf_path, 'wb') as output_pdf_file:
pdf_writer.write(output_pdf_file)
# 打印创建的PDF文件的路径
print(f"Created: {output_pdf_path}")
# 示例用法
input_pdf_path = "XX/your_pdf_file.pdf" # 替换为实际的PDF路径
split_pdf(input_pdf_path)