2016-07-11 43 views
0

PDFの画像を抽出しようとしています。私が扱っているファイルは2ページ以上です。ページ1はテキストであり、ページ2-nは画像(1ページに1つ、または複数のページにまたがる単一の画像であり、原点を制御することはできません)です。Python pdfminer画像を抽出すると、1ページに複数の画像が生成されます(単一画像である必要があります)。

私はページ1からテキストを解析することができますが、イメージを取得しようとするとイメージページあたり3つのイメージが得られます。私はそれを困難にする画像の種類を判断することはできません。さらに、単一のimgは何の結果を提供しないよう、各ページに3枚の画像を保存しようとしている(中には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_imageのいずれかでpageNum_imgNum形式の画像ごとにファイルを書き込み'wb'モードまたは'a'モードの1ページあたりの単一画像。私は運がない多くのファイル拡張子を試しました。

私がに見てきた

資源:

http://denis.papathanasiou.org/posts/2010.08.04.post.html(outdatted pdfminer版) http://nedbatchelder.com/blog/200712/extracting_jpgs_from_pdfs.html

答えて

0

この質問が尋ねてきたが、私は社会のために貢献しますので、これは、しばらくしていますあなたの利益のために可能性があります:)

私はpdfimagesという画像パーサーを使用していますが、これはpoppler PDF処理フレームワークから入手できます。また、イメージごとに複数のファイルを出力します。 PDF生成者が画像を複数の画像に「タイル」または「ストリップ」することで、画像をスクラップするときに一緒につなぎ合わせる必要がありますが、PDFを見ている間は完全に元のままです。私がpdfimagesなどで見たフォーマット/ファイル拡張子は、png、tiff、jp2、jpg、ccittです。あなたはそれらのすべてを試しましたか?

関連する問題