2016-07-11 14 views
0

我正在尝试提取PDF中的图像。我正在使用的文件是2+页。第1页是文本,第2-n页是图像(每页一个,或者它可能是跨多页的单个图像;我无法控制原点)。Python pdfminer提取图像每页产生多个图像(应该是单个图像)

我能够从第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'模式下的每页单个图像。我已经尝试了很多文件扩展名,但没有运气。

资源,我看着:

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。你尝试过所有这些吗?