这是代码
import PyPDF2,os
output = PyPDF2.PdfFileWriter()
input_stream = PyPDF2.PdfFileReader(open("/root/Desktop/temp_dir/Mr praveen.pdf", "rb"))
for i in range(0, input_stream.getNumPages()):
output.addPage(input_stream.getPage(i))
outputstream = open("/root/Desktop/name.pdf", "wb")
output.encrypt("mani", use_128bit=True)
output.write(outputstream)
outputStream.close()
运行此代码时,我收到错误
提高utils。PdfReadError("在字节%s的流后找不到"endstream"标记。"%utils.hexStr(stream.tell((((PyPDF2.utils.PdfReadError:在字节0xa721的流之后找不到"endstream"标记。请帮帮我。
pypdf
在2022年得到了巨大的改进。请更新您的代码(请参阅迁移指南(,然后重试。
问题是您使用的PDF不符合标准。我们添加了许多健壮性修复程序,以便pypdf可以处理不兼容的PDF文档,但最好只修复PDF。
修复损坏的PDF文档
MuPDF的多工具可以修复损坏的PDF文档:
mutool clean -d input.pdf output.pdf