首先安装库
使用PyPDF2
首先,确保你已经安装了PyPDF2
。如果没有安装,可以通过pip安装:
pip install PyPDF2
然后运行
import PyPDF2def remove_page(input_pdf_path, output_pdf_path, page_number_to_remove):# 打开PDF文件with open(input_pdf_path, 'rb') as file:reader = PyPDF2.PdfFileReader(file)writer = PyPDF2.PdfFileWriter()# 遍历所有页面,除了要删除的页面for page_num in range(reader.numPages):if page_num != page_number_to_remove:writer.addPage(reader.getPage(page_num))# 写入新的PDF文件with open(output_pdf_path, 'wb') as output_file:writer.write(output_file)# 示例用法
input_pdf = 'example.pdf'
output_pdf = 'example_modified.pdf'
page_number_to_remove = 1 # 例如,删除第二页(索引从0开始)
remove_page(input_pdf, output_pdf, page_number_to_remove)
方法二
使用PDFPlumber
如果你更倾向于使用PDFPlumber
(虽然它主要用于提取文本而不是直接操作页面),你首先需要安装它
安装库
pip install pdfplumber
但是,PDFPlumber
本身不直接支持删除页面。你可以先用它提取页面,然后使用PyPDF2
或其他方法重新组合页面。例如:
import pdfplumber
import PyPDF2def remove_page_with_pdfplumber(input_pdf_path, output_pdf_path, page_number_to_remove):# 使用PDFPlumber提取页面内容(可选,仅用于示例)pages = pdfplumber.extract_pages(input_pdf_path)extracted_pages = [pages[i] for i in range(len(pages)) if i != page_number_to_remove]# 使用PyPDF2重新组合页面并保存新的PDF文件writer = PyPDF2.PdfFileWriter()for page in extracted_pages:page_obj = PyPDF2.pdf.PageObject.createBlankPage(None, width=page.width, height=page.height)writer.addPage(page_obj)writer._writePageElement(writer._addObject(page.data), page_obj) # 这里简化处理,实际使用时可能需要更精细的控制with open(output_pdf_path, 'wb') as f:writer.write(f)# 示例用法
input_pdf = 'example.pdf'
output_pdf = 'example_modified.pdf'
page_number_to_remove = 1 # 例如,删除第二页(索引从0开始)
remove_page_with_pdfplumber(input_pdf, output_pdf, page_number_to_remove)