如何以原始分辨率和格式从pdf文档中提取所有图像? (意思是将tiff提取为tiff,将jpeg提取为jpeg等,而无需重新采样)。布局并不重要,我不在乎源图像是否位于页面上。

我使用的是python 2.7,但可以根据需要使用3.x。

最佳答案

您可以使用模块PyMuPDF。这会将所有图像输出为.png文件,但是开箱即用且速度很快。

import fitz
doc = fitz.open("file.pdf")
for i in range(len(doc)):
    for img in doc.getPageImageList(i):
        xref = img[0]
        pix = fitz.Pixmap(doc, xref)
        if pix.n < 5:       # this is GRAY or RGB
            pix.writePNG("p%s-%s.png" % (i, xref))
        else:               # CMYK: convert to RGB first
            pix1 = fitz.Pixmap(fitz.csRGB, pix)
            pix1.writePNG("p%s-%s.png" % (i, xref))
            pix1 = None
        pix = None

see here for more resources

10-01 05:33