使用PyMuPDF,我想从pdf中提取所有图像并单独保存,并将pdf中的所有图像替换为同一图像位置的图像名称,然后另存为另一个文档。我可以用下面的代码保存所有图像
import fitz
#This creates the Document object doc
doc = fitz.open("Article_Example_1_2.pdf")
html_text=""
for i in range(len(doc)):
print(doc[i]._getContents())
for img in doc.getPageImageList(i):
xref = img[0]
pix = fitz.Pixmap(doc, xref)
if pix.n - pix.alpha < 4: # this is GRAY or RGB or pix.n < 5
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
doc.save(filename=r"new.pdf")
doc.close()
但不知道如何用存储的图像名称替换pdf格式的所有图像。如果有人能帮助我,我将不胜感激
来自回购维护者的信息:
我不确定我们是否在回购协议的问题博客中讨论过这一点。您可以使用新功能“编校注释”。基本方法:
Page.getImageBbox()
计算每个图像的bbox李>Page.addRedactAnnot(bbox, text=filename, ...)
添加编校批注李>Page.apply_redactions()
。这将删除所有图像和所有密文。所选文件名将显示在前一个图像bbox中李>确保使用PyMuPDF v1.17.0或更高版本
相关问题 更多 >
编程相关推荐