2017-12-09 48 views
0

pdfからすべての画像形式を抽出しようとしています。私はいくつかのグーグルを行い、StackOverflowのthis pageを見つけました。私はこのコードを試してみましたが、私はこのエラーを取得しています:pythonでPDFから画像を抽出中にエラーが発生しました

私はPythonの3.xを使用し、ここで私が使用していたコードでいます。私はコメントを通そうとしましたが、理解できませんでした。これを解決するのを手伝ってください。ここで

sample PDF.

import PyPDF2 

from PIL import Image 

if __name__ == '__main__': 
    input1 = PyPDF2.PdfFileReader(open("Aadhaar1.pdf", "rb")) 
    page0 = input1.getPage(0) 
    xObject = page0['/Resources']['/XObject'].getObject() 

    for obj in xObject: 
     if xObject[obj]['/Subtype'] == '/Image': 
      size = (xObject[obj]['/Width'], xObject[obj]['/Height']) 
      data = xObject[obj].getData() 
      if xObject[obj]['/ColorSpace'] == '/DeviceRGB': 
       mode = "RGB" 
      else: 
       mode = "P" 

      if xObject[obj]['/Filter'] == '/FlateDecode': 
       img = Image.frombytes(mode, size, data) 
       img.save(obj[1:] + ".png") 
      elif xObject[obj]['/Filter'] == '/DCTDecode': 
       img = open(obj[1:] + ".jpg", "wb") 
       img.write(data) 
       img.close() 
      elif xObject[obj]['/Filter'] == '/JPXDecode': 
       img = open(obj[1:] + ".jp2", "wb") 
       img.write(data) 
       img.close() 

である私はいくつかのコメントを読んで、リンクを通過するとthis pageに解決し、この問題を発見しました。誰かがそれを実装するのを助けてくれますか?

+0

入力PDFも入力できますか?使用しているコードやファイルで発生している問題を再現することができれば、はるかに簡単です。 – Gary02127

+0

@ Gary02127遅く返事をして申し訳ありません。私の場所にあるGary.Networkはダウンしていました。私は複数のPDFを試してみましたが、同じエラーが発生しました。しかし、サンプルPDFで質問を編集しました。 – john

+0

PDFが画像に使用しているフィルタは、使用しているライブラリ 'PyPDF2 'でサポートされていないようです。私は、このフィルターを含む他のPDFリーダーを認識していませんが、そこにいる可能性があります。私は専門家ではありません。 – physicalattraction

答えて

0

ライブラリエラーです。PyPDF2です。変更を加えたライブラリをアンインストールしてインストールしてみるか、GitHubの変更を確認して変更をマークしてください。うまくいくことを願っています。

+0

それはうまくいった。ありがとうございました。 – john

関連する問題