pdf删除一页 python实现(已验证)

发布于:2025-07-03 ⋅ 阅读:(19) ⋅ 点赞:(0)

首先安装库

使用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)


网站公告

今日签到

点亮在社区的每一天
去签到