无法找到从 13367 开始的 obj 的“endstream”标记

问题描述 投票:0回答:1

执行这段代码时:

from pypdf import PdfReader,PdfWriter
import traceback

try:
    input_pdf = PdfReader(dwnld_filepath)
    output_pdf = PdfWriter()
    image = input_pdf.pages[0]
    output_pdf.add_page(image)
    output_pdf.write(file_path)
except Exception as e:
    traceback.print_exc()

这是我看到的完整回溯:

回溯(最近一次调用最后一次):文件 “/Users/shafeerali/Documents/Nanonets/avanto/API/test.py”,第 58 行,位于 output_pdf.add_page(image) 文件“/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pypdf/_writer.py”, add_page 中的第 418 行 返回 self._add_page(page, list.append, excepted_keys) 文件 "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pypdf/_writer.py", 第 331 行,在 add_page 中 page = cast("PageObject", page_org.clone(self, False, excepted_keys)) 文件 “/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pypdf/generic/data_structs.py”, 第 199 行,克隆中 d._clone(self、pdf_dest、force_duplicate、ignore_fields、visited) 文件 “/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pypdf/generic/_data_structs.py”, 第 310 行,在 clone 中 v.clone(pdf_dest,force_duplicate,ignore_fields)文件“/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pypdf/generic/data_structs.py”, 第 199 行,克隆中 d._clone(self、pdf_dest、force_duplicate、ignore_fields、visited) 文件 “/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pypdf/generic/_data_structs.py”, 第 310 行,在 clone 中 v.clone(pdf_dest,force_duplicate,ignore_fields)文件“/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pypdf/generic/data_structs.py”, 第 199 行,克隆中 d._clone(self、pdf_dest、force_duplicate、ignore_fields、visited) 文件 “/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pypdf/generic/_data_structs.py”, _clone 中的第 310 行 v.clone(pdf_dest,force_duplicate,ignore_fields)文件“/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pypdf/generic/_base.py”, 第 300 行,克隆中 obj.clone(pdf_dest,force_duplicate,ignore_fields)文件“/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pypdf/generic/_data_structs.py”, 第 116 行,克隆中 arr.append(data.clone(pdf_dest,force_duplicate,ignore_fields))文件 “/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pypdf/generic/_base.py”, 第 292 行,克隆中 obj = self.get_object() 文件“/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pypdf/generic/_base.py”, 第 312 行,在 get_object 中 obj = self.pdf.get_object(self) 文件“/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pypdf/_reader.py”, 第 1401 行,在 get_object 中 retval = read_object(self.stream, self) # 类型:忽略文件 "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pypdf/generic/_data_structs.py", 第 1280 行,在 read_object 中 返回 DictionaryObject.read_from_stream(stream, pdf,forced_encoding) 文件 “/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pypdf/generic/_data_structs.py”, 第 538 行,在 read_from_stream 中 数据[“streamdata”] = read_unsized_from_steam(stream, pdf) 文件 “/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pypdf/generic/_data_structs.py”, 第 432 行,在 read_unsized_from_steam 中 raise PdfReadError( pypdf.errors.PdfReadError: 无法找到从 13367 开始的 obj 的“endstream”标记。

此处是导致问题的 PDF 文件。

EveBest.pdf

python pdf-generation python-3.7 pypdf pypdf4
1个回答
0
投票

我是 pypdf(和 PyPDF2)的维护者。

回溯表明您的 PDF 已损坏。您可以使用 PDF 验证器进行验证,例如 https://www.pdf-online.com/osa/validate.aspx

虽然pypdf可以处理很多问题,但它永远无法处理各种破损的PDF文档。

您可以修复 PDF 文档:如何修复/修复损坏的 PDF 文件?

© www.soinside.com 2019 - 2024. All rights reserved.