1

URLからPDFを読み込もうとしています。多くのスタックオーバーフローの提案に従い、PyPdf2 FileReader を使用して PDF からテキストを抽出しました。私のコードは次のようになります:

url = "http://kat.kar.nic.in:8080/uploadedFiles/C_13052015_ch1_l1.pdf"
#url = "http://kat.kar.nic.in:8080/uploadedFiles/C_06052015_ch1_l1.pdf"
f = urlopen(Request(url)).read()
fileInput = StringIO(f)
pdf = PyPDF2.PdfFileReader(fileInput)

print pdf.getNumPages()
print pdf.getDocumentInfo()
print pdf.getPage(1).extractText()

最初のリンクのテキストを正常に抽出できました。しかし、2番目のpdfに同じプログラムを使用すると. 私はテキストを取得しません。ページ番号とドキュメント情報が表示されるようです。

ターミナルを介して Pdfminer からテキストを抽出しようとしたところ、2 番目の pdf からテキストを抽出できました。

PDFの何が問題なのか、または私が使用しているライブラリに欠点がありますか?

4

1 に答える 1

2

pyPDF ドキュメントのコメントを読むと、この機能が一部の PDF ファイルではうまく機能しないことがすぐそこに書かれていることがわかります。つまり、ライブラリの制限を見ています。

2 つの PDF ファイルを見ると、ファイル自体に問題はありません。しかし...

最初のファイルには完全に埋め込まれたフォントが含まれています 2 番目のファイルにはサブセット化されたフォントが含まれています

これは、2 番目のファイルからテキストを抽出するのがより難しく、ライブラリが適切にサポートしていない可能性があることを意味します。参考までに、Acrobatテキスト抽出を使用するcallas pdfToolbox(注意、私はこのツールと提携しています)でテキスト抽出を行い、テキストは両方のファイルで適切に抽出されました(問題はPDFファイルではないことを確認します) .

于 2015-05-16T06:28:55.220 に答える