PDFMiner pythonバインディングを使用して、多数のPDFからテキストを抽出しようとしています。私が書いたモジュールは多くのPDFで機能しますが、PDFのサブセットでこのやや不可解なエラーが発生します。
ipythonスタックトレース:
/usr/lib/python2.7/dist-packages/pdfminer/pdfparser.pyc in set_parser(self, parser)
331 break
332 else:
--> 333 raise PDFSyntaxError('No /Root object! - Is this really a PDF?')
334 if self.catalog.get('Type') is not LITERAL_CATALOG:
335 if STRICT:
PDFSyntaxError: No /Root object! - Is this really a PDF?
もちろん、すぐにこれらのPDFが破損していないかどうかを確認しましたが、問題なく読み取ることができます。
ルートオブジェクトがないにもかかわらず、これらのPDFを読み取る方法はありますか?ここからどこへ行けばいいのかよくわかりません。
どうもありがとう!
編集:
私はいくつかの鑑別診断を得るためにPyPDFを使ってみました。スタックトレースは次のとおりです。
In [50]: pdf = pyPdf.PdfFileReader(file(fail, "rb"))
---------------------------------------------------------------------------
PdfReadError Traceback (most recent call last)
/home/louist/Desktop/pdfs/indir/<ipython-input-50-b7171105c81f> in <module>()
----> 1 pdf = pyPdf.PdfFileReader(file(fail, "rb"))
/usr/lib/pymodules/python2.7/pyPdf/pdf.pyc in __init__(self, stream)
372 self.flattenedPages = None
373 self.resolvedObjects = {}
--> 374 self.read(stream)
375 self.stream = stream
376 self._override_encryption = False
/usr/lib/pymodules/python2.7/pyPdf/pdf.pyc in read(self, stream)
708 line = self.readNextEndLine(stream)
709 if line[:5] != "%%EOF":
--> 710 raise utils.PdfReadError, "EOF marker not found"
711
712 # find startxref entry - the location of the xref table
PdfReadError: EOF marker not found
Quonuxは、おそらくPDFMinerが最初のEOF文字に達した後に解析を停止したことを示唆しました。これは別のことを示唆しているように見えますが、私は非常に無知です。何かご意見は?