使用Python从pdf提取图像

时间:2019-05-30 08:13:10

标签: python image pdf adobe jpeg

我们如何从PDF中提取图像(仅图像)。

我使用了许多在线工具,它们都不是通用的。在大多数PDF中,它都使用整个图像而不是图像的屏幕截图。 PDF链接-> sg.inflibnet.ac.in:8080/jspui/bitstream/10603/121661/9/09_chapter 4.pdf

2 个答案:

答案 0 :(得分:0)

以下是一些代码,该代码使用pyPdf读取PDF文件,提取图像并将其生成为socketClient = new Socket(host, port); 。您需要根据需要对其进行修改,这只是在演示如何遍历对象树。

PIL.Image

答案 1 :(得分:0)

这是PyMuPDF的解决方案:

#!python3.6
import fitz  # PyMuPDF


def get_pixmaps_in_pdf(pdf_filename):
    doc = fitz.open(pdf_filename)
    xrefs = set()
    for page_index in range(doc.pageCount):
        for image in doc.getPageImageList(page_index):
            xrefs.add(image[0])  # Add XREFs to set so duplicates are ignored
    pixmaps = [fitz.Pixmap(doc, xref) for xref in xrefs]
    doc.close()
    return pixmaps


def write_pixmaps_to_pngs(pixmaps):
    for i, pixmap in enumerate(pixmaps):
        pixmap.writePNG(f'{i}.png')  # Might want to come up with a better name


pixmaps = get_pixmaps_in_pdf(r'C:\StackOverflow\09_chapter 4.pdf')
write_pixmaps_to_pngs(pixmaps)