如何以原始分辨率和格式从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