首先安装库
使用PyPDF2
首先,确保你已经安装了PyPDF2
。如果没有安装,可以通过pip安装:
pip install PyPDF2
然后运行
import PyPDF2
def 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 PyPDF2
def 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)