使用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_pdf,output_pdf和page_num_to_delete的值。
注意:在使用PyPDF2库时,需要确保输入的PDF文件不是密码保护的,并且可以进行写操作。
