Python pdfminer 提取图片每页生成多张图片(应该是单张图片)

Eri*_*rik 5 python-2.7 pdfminer

我正在尝试提取 PDF 中的图像。我正在处理的文件有 2 页以上。第 1 页是文本,第 2-n 页是图像(每页一个,或者它可能是跨越多个页面的单个图像;我无法控制原点)。

我能够从第 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)
Run Code Online (Sandbox Code Playgroud)

save_image要么pageNum_imgNum'wb'模式下以格式为每个图像写入一个文件,要么在模式下每页写入一个图像'a'。我尝试了许多文件扩展名,但都没有成功。

我研究过的资源:

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

Nik*_*day 4

自从提出这个问题以来已经有一段时间了,但我会为了社区做出贡献,并可能为您带来好处:)

我一直在使用名为 pdfimages 的图像解析器,可以通过 poppler PDF 处理框架获得。它还为每个图像输出多个文件;对于 PDF 生成器来说,将图像“平铺”或“剥离”成多个图像似乎是一种相对常见的行为,然后在抓取时需要将这些图像拼凑在一起,但在查看 PDF 时却显得完全完整。我通过 pdfimages 和其他地方看到的格式/文件扩展名是:png、tiff、jp2、jpg、ccitt。这些你都尝试过吗?