pip install PyPDF2 -i https://pypi.tuna.tsinghua.edu.cn/simple
代码如下:
from PyPDF2 import PdfReader, PdfWriter
# pip install PyPDF2 -i https://pypi.tuna.tsinghua.edu.cn/simple# 定义要处理的PDF文件及其完整路径
pdf_files = {'数模.pdf': r'D:\Users\Documents\WeChat Files\FileStorage\File\2025-03\数学一模每日一练5(3.18).pdf', # 替换为A.pdf的实际路径'数招.pdf': r'D:\Users\Documents\WeChat Files\FileStorage\File\2025-03\自招考试—数学每日一练5(3.18).pdf', # 替换为B.pdf的实际路径'物模.pdf': r'D:\Users\Documents\WeChat Files\FileStorage\File\2025-03\物理一模每日一练5(3.18).pdf', # 替换为C.pdf的实际路径'物招.pdf': r'D:\Users\Documents\WeChat Files\FileStorage\File\2025-03\自招考试—物理每日一练5(3.18).pdf', # 替换为C.pdf的实际路径'化模.pdf': r'D:\Users\Documents\WeChat Files\FileStorage\File\2025-03\化学一模每日一练5(3.18).pdf', # 替换为C.pdf的实际路径'化招.pdf': r'D:\Users\Documents\WeChat Files\FileStorage\File\2025-03\自招版—化学每日一练5(3.18).pdf' # 替换为C.pdf的实际路径
}# 定义要提取的页码(注意:页码从0开始)
pages_to_extract = {'数模.pdf': [0], # 提取A.pdf的第1页和第3页'数招.pdf': [0], # 提取B.pdf的第2页'物模.pdf': [0], # 提取C.pdf的第1页和第2页'物招.pdf': [0], # 提取A.pdf的第1页和第3页'化模.pdf': [0], # 提取B.pdf的第2页'化招.pdf': [0] # 提取C.pdf的第1页和第2页
}# 创建一个PdfWriter对象来保存合并后的PDF
output_pdf = PdfWriter()# 遍历每个PDF文件
for pdf_name, pdf_path in pdf_files.items():# 读取PDF文件reader = PdfReader(pdf_path)# 获取要提取的页码pages = pages_to_extract.get(pdf_name, [])# 遍历要提取的页码for page_num in pages:# 获取指定页page = reader.pages[page_num]# 将页添加到输出PDF中output_pdf.add_page(page)# 将合并后的PDF写入到输出文件
output_path = r'D:\Users\Desktop\0319.pdf' # 替换为输出文件的实际路径
with open(output_path, 'wb') as output_file:output_pdf.write(output_file)print(f"PDF合并完成,已保存为 {output_path}")
代码说明:
- PdfReader:用于读取 PDF 文件。
- PdfWriter:用于创建和写入新的 PDF 文件。
- pages_to_extract:一个字典,指定每个 PDF 文件中要提取的页码。注意,页码从 0 开始。
- output_pdf.add_page(page):将指定的页面添加到输出 PDF 中。
- output_pdf.write(output_file):将合并后的 PDF 写入到输出文件。