最近在写毕业论文,涉及到pdf的编辑了,而现有的网上的pdf软件都开会员10-100不等,而使用python代码即可以实现以上功能,在此分享一下代码:
(1)pdf删除指定页:
from PyPDF2 import PdfFileReader, PdfFileWriter
# 打开pdf文件
input_pdf = "C:\Output\combinedPDF5.pdf"
output_pdf = "C:\Output\combinedPDF6.pdf"
input_pdf_file = open(input_pdf, 'rb')
pdf_reader = PdfFileReader(input_pdf_file)
pdf_writer = PdfFileWriter()
# 删除指定页(假设删除第2页)
for page_num in range(pdf_reader.getNumPages()):
if page_num != 1 : # 不包括第2页
page = pdf_reader.getPage(page_num)
pdf_writer.addPage(page)
# 将结果写入新的pdf文件
with open(output_pdf, 'wb') as output_pdf_file:
pdf_writer.write(output_pdf_file)
# 关闭文件
input_pdf_file.close()
print('删除指定页并导出完成!')
(2)pdf合并:
from PyPDF2 import PdfFileMerger
# 创建PdfFileMerger对象
merger = PdfFileMerger()
# 添加要合并的PDF文件
pdf_files = ["C:\Output\combinedPDF5.pdf", "C:\Output\combinedPDF6.pdf"]
for pdf_file in pdf_files:
merger.append(pdf_file)
# 合并PDF文件
output_pdf = "C:\Output\combinedPDF_he.pdf"
merger.write(output_pdf)
merger.close()
print('PDF文件合并完成,合并后的文件为:', output_pdf)
(3) pdf拆分
from PyPDF2 import PdfFileReader, PdfFileWriter
# 打开要拆分的PDF文件
input_pdf = "C:\Output\combinedPDF5.pdf"
pdf_reader = PdfFileReader(input_pdf)
# 逐页拆分PDF文件
for page_num in range(pdf_reader.getNumPages()) :
pdf_writer = PdfFileWriter()
pdf_writer.addPage(pdf_reader.getPage(page_num))
# 拆分后的文件名
output_pdf = f"C:\Output\output_page_{page_num + 1}.pdf"
# 写入拆分后的PDF文件
with open(output_pdf, "wb") as output_file :
pdf_writer.write(output_file)
print(f"拆分第 {page_num + 1} 页完成,拆分后的文件为: {output_pdf}")
print("PDF文件拆分完成")