5

PDF 内の画像を抽出しようとしています。私が扱っているファイルは2ページ以上です。ページ 1 はテキストで、ページ 2 ~ n は画像です (1 ページに 1 つ、または複数のページにまたがる単一の画像である可能性があります。元のページを制御することはできません)。

ページ 1 からテキストを解析することはできますが、画像を取得しようとすると、画像ページごとに 3 つの画像が取得されます。保存が困難な画像の種類を判断できません。さらに、各ページの 3 つの写真を単一の img として保存しようとしても、結果が得られません (OSX のファインダーで開くことができないため)。

サンプル:

fp = open('the_file.pdf', 'rb')
parser = PDFParser(fp)
document = PDFDocument(parser)
rsrcmgr = PDFResourceManager()
laparams = LAParams()
device = PDFPageAggregator(rsrcmgr, laparams=laparams)
interpreter = PDFPageInterpreter(rsrcmgr, device)


for page in PDFPage.create_pages(document):
    interpreter.process_page(page)
    pdf_item = device.get_result()
    for thing in pdf_item:
        if isinstance(thing, LTImage):
            save_image(thing)
        if isinstance(thing, LTFigure):
            find_images_in_thing(thing)


def find_images_in_thing(outer_layout):
    for thing in outer_layout:
        if isinstance(thing, LTImage):
            save_image(thing)

save_imagepageNum_imgNummode のformat で画像ごとにファイルを書き込むか'wb'、 mode でページごとに 1 つの画像を書き込み'a'ます。多くのファイル拡張子を試してみましたが、うまくいきませんでした。

私が調べたリソース:

http://denis.papathanasiou.org/posts/2010.08.04.post.html (時代遅れの pdfminer バージョン) http://nedbatchelder.com/blog/200712/extracting_jpgs_from_pdfs.html

4

3 に答える 3