PdfFileReader: PdfReadError: Could not find xref table at specified location

PdfFileReader: PdfReadError: Could not find xref table at specified location

我正在尝试通过以下方式阅读 python 中的 Pdf 文件:

from PyPDF2 import PdfFileReader, PdfFileWriter
test_reader = PdfFileReader(file("test.pdf", "rb"))

上一行抛出错误:

PyPDF2.utils.PdfReadError: Could not find xref table at specified location

任何帮助将不胜感激

已修复。实际上,没有任何问题。看来,我用来测试的 pdf 已损坏(即使我打开它时,内容还在,这就是为什么我一开始无法弄清楚的原因)

我用另一个替换它,它按预期工作。

您可以使用 qpdf 修复损坏的 PDF,或者您可以简单地使用 pikepdf(基于 qpdf)而不是 PyPDF2。该库能够很好地处理损坏的 PDF,因为它基于 qpdf。

示例:

import pikepdf
pdf = pikepdf.Pdf.open(file)

Pikepdf 文档:https://pikepdf.readthedocs.io/en/latest/

您可以解决此问题,方法是在 Adob​​e Acrobat Reader 中打开每个 PDF,然后用相同的名称保存打开的 PDF。这将修复损坏,以便 PyPDF2 可以读取文件。