PDFからすべての形式の画像を抽出しようとしています。グーグルで調べたところ、StackOverflowでこのページが見つかりました。このコードを試しましたが、次のエラーが発生します。
私はpython 3.xを使用しています。これが私が使用しているコードです。コメントを調べてみましたが、わかりませんでした。これを解決するのを手伝ってください。
サンプル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()
私はいくつかのコメントを読んでリンクをたどっていましたが、この問題はこのページで解決されていることがわかりました。誰かがそれを実装するのを手伝ってもらえますか?