准备做一个可以删除指定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文件在同一个目录下。
【相关推荐】