python语言实现PDF删除单页面

准备做一个可以删除指定PDF文件单页,以下代码发生错误,请订正?

from PyPDF2 import PdfFileReader, PdfFileWriter
print("成功:剔除成功后在该目录下会新建NewPdf.pdf文件")
print("准备:请把需要加工的PDF文件复制到该目录下,重名为pdftc.pdf.")
DelPages=eval(input("请切换英文半角输入法输入要剔除的页码,中间用逗号分割:"))
#注意outfile的文件名最好不要与readfile一样,可能会出现文件全空白情况
readfile = r"pdft.pdf"
outfile = r"NewPdf.pdf"
pdfReader = PdfFileReader(open(readfile,'rb'))
pdfFileWriter = PdfFileWriter()
numPages = pdfReader.getNumPages()
page=list(DelPages)#注意第一页的index为0.
#把列表中的数字都减1,形成新的列表,提高用户输入习惯
pagelist=[]
for i in page:
    i=i-1
    pagelist.append(i)
for index in range(0, numPages):
    if index not in pagelist:
        pageObj = pdfReader.getPage(index)
        pdfFileWriter.addPage(pageObj)
pdfFileWriter.write(open(outfile, 'wb'))

该回答引用gpt,测试过了

from PyPDF2 import PdfReader, PdfWriter

print("成功:剔除成功后在该目录下会新建NewPdf.pdf文件")

# 修改为您要编辑的PDF文件名
readfile = r"2023_PDF.pdf"

# 修改为输出文件名,确保不与输入文件名相同
outfile = r"NewPdf.pdf"

# 打开要编辑的PDF文件
pdfReader = PdfReader(open(readfile,'rb'))

# 创建一个新的PDF文件
pdfFileWriter = PdfWriter()

# 获取PDF文件的页数
numPages = len(pdfReader.pages)

# 输入要删除的页码字符串,如1, 3, 5
DelPages = input("请输入要剔除的页码,中间用逗号分隔:")

# 将字符串分割为多个数字,存储为列表
page = [int(p) for p in DelPages.split(",")]

# 将输入的页码减1,形成新的页码列表
pagelist = [p - 1 for p in page]

# 遍历PDF文件的每一页
for index in range(numPages):
    # 如果当前页不在要删除的页码列表中,则将该页添加到新的PDF文件中
    if index not in pagelist:
        pageObj = pdfReader.pages[index]
        pdfFileWriter.add_page(pageObj)

# 将新的PDF文件保存在指定路径下
pdfFileWriter.write(open(outfile, 'wb'))

print("成功:剔除成功后在该目录下会新建NewPdf.pdf文件")

具体报错贴一下

【以下回答由 GPT 生成】

import os
from PyPDF2 import PdfFileReader, PdfFileWriter

# 输入要删除的页码,将其转换为整数列表
DelPages = input("请输入要删除的页码,中间用逗号分隔:").split(',')
DelPages = [int(page) - 1 for page in DelPages]

# 读取原始PDF文件
readfile = "pdft.pdf"
pdfReader = PdfFileReader(open(readfile, 'rb'))
numPages = pdfReader.getNumPages()

# 创建一个新的PDF写入对象
pdfFileWriter = PdfFileWriter()

# 遍历每一页,添加到新的PDF文件中
for index in range(numPages):
    if index not in DelPages:
        pageObj = pdfReader.getPage(index)
        pdfFileWriter.addPage(pageObj)

# 写入新的PDF文件
outfile = "NewPdf.pdf"
with open(outfile, "wb") as f:
    pdfFileWriter.write(f)

注意事项: - 请确保安装了PyPDF2库。 - 将要删除页面的页码以英文逗号分隔,并且不要有空格,例如:1,2,3。 - readfile为原始的PDF文件路径,outfile为生成的新PDF文件路径。 - 确保原始PDF文件存在,并且程序有访问权限来读取和写入文件。 - 确保Python代码文件与原始PDF文件在同一个目录下。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^