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/
您可以解决此问题,方法是在 Adobe Acrobat Reader 中打开每个 PDF,然后用相同的名称保存打开的 PDF。这将修复损坏,以便 PyPDF2 可以读取文件。
我正在尝试通过以下方式阅读 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/
您可以解决此问题,方法是在 Adobe Acrobat Reader 中打开每个 PDF,然后用相同的名称保存打开的 PDF。这将修复损坏,以便 PyPDF2 可以读取文件。