拆分所有页
python
from PyPDF3 import PdfFileWriter, PdfFileReader
path = "C://Users//Administrator//Desktop//拆分//"
input_pdf = PdfFileReader(path+"example.pdf") # PdfFileReader读取原始文件
output = PdfFileWriter()
# 获取PDF页数
num_pages = input_pdf.getNumPages()
for page_num in range(num_pages):
output = PdfFileWriter()
# PdfFileWriter().addPage()将PDF页面添加到新的PDF中并保存
output.addPage(input_pdf.getPage(page_num))
with open("{}page_{}.pdf".format(path,page_num + 1), 'wb') as output_pdf:
output.write(output_pdf)
拆分指定页
python
from PyPDF3 import PdfFileReader, PdfFileWriter
def split_pdf(input_pdf_path, output_prefix, start_page, end_page):
# 读取PDF
reader = PdfFileReader(input_pdf_path)
# 循环从start_page到end_page,每页创建新的PDF
for page_number in range(start_page, end_page + 1):
output = PdfFileWriter()
# 将特定页面添加到输出PDF
output.addPage(reader.pages[page_number - 1])
# 写入PDF到文件
with open(f"{output_prefix}-page_{page_number}.pdf", "wb") as output_pdf:
output.write(output_pdf)
# 使用split_pdf函数拆分PDF
# 文件名,输出名,起始页,结束页
split_pdf("example.pdf", "output", 1, 3) # 拆分从第1页到第3页的PDF
多文件合并PDF
python
import os
from PyPDF3 import PdfFileMerger
path = "C://Users//Administrator//Desktop//拆分//新建文件夹//"
pdf_lst = [f for f in os.listdir(path) if f.endswith('.pdf')]
pdf_lst = [os.path.join(path, filename) for filename in pdf_lst]
file_merger = PdfFileMerger()
for pdf in pdf_lst:
file_merger.append(pdf)
file_merger.write(path + "合并文件.pdf")