欢迎访问宙启技术站
智能推送

使用Python中的PdfFileWriter()删除PDF文件中的页面

发布时间:2023-12-29 12:47:44

在Python的PyPDF2库中,可以使用PdfFileWriter()类来编辑或者创建PDF文件。要删除PDF文件中的页面,我们可以按照以下的步骤进行操作:

1. 首先,我们需要安装PyPDF2库。可以通过命令pip install PyPDF2来安装。

2. 导入所需的库和模块:

from PyPDF2 import PdfFileReader, PdfFileWriter

3. 创建PdfFileReader对象来打开要编辑的PDF文件:

input_pdf = "input.pdf"
pdf_reader = PdfFileReader(input_pdf)

4. 创建一个新的PdfFileWriter对象:

pdf_writer = PdfFileWriter()

5. 遍历所有的页面,并将要保留的页面添加到新的PdfFileWriter对象中。可以使用addPage()方法来添加页面:

for page_num in range(pdf_reader.numPages):
    # 获取页面对象
    page = pdf_reader.getPage(page_num)
    
    # 如果不想删除的页面
    if page_num != 2:  
        # 将页面添加到新的PdfFileWriter对象
        pdf_writer.addPage(page)

在上面的示例中,我们删除了第3页(索引从0开始)。

6. 最后,将新的PdfFileWriter对象写入到新的PDF文件中:

output_pdf = "output.pdf"
with open(output_pdf, "wb") as f:
    pdf_writer.write(f)

完整的代码示例如下:

from PyPDF2 import PdfFileReader, PdfFileWriter

def delete_page(input_pdf, output_pdf, page_num_to_delete):
    pdf_reader = PdfFileReader(input_pdf)
    pdf_writer = PdfFileWriter()

    for page_num in range(pdf_reader.numPages):
        page = pdf_reader.getPage(page_num)
        
        if page_num != page_num_to_delete:  
            pdf_writer.addPage(page)

    with open(output_pdf, "wb") as f:
        pdf_writer.write(f)

# 使用示例:
input_pdf = "input.pdf"
output_pdf = "output.pdf"
page_num_to_delete = 2  # 要删除的页面索引从0开始

delete_page(input_pdf, output_pdf, page_num_to_delete)

以上代码会将input.pdf中的所有页面复制到output.pdf中,除了索引为2的页面。

请根据你的具体需求修改input_pdfoutput_pdfpage_num_to_delete的值。

注意:在使用PyPDF2库时,需要确保输入的PDF文件不是密码保护的,并且可以进行写操作。