使用pymupdf将图像替换为Pdf中的图像名称

2024-09-29 22:22:16 发布

您现在位置:Python中文网/ 问答频道 /正文

使用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格式的所有图像。如果有人能帮助我,我将不胜感激


Tags: orin图像名称imgfordocpdf
1条回答
网友
1楼 · 发布于 2024-09-29 22:22:16

来自回购维护者的信息:

我不确定我们是否在回购协议的问题博客中讨论过这一点。您可以使用新功能“编校注释”。基本方法:

  1. 通过Page.getImageBbox()计算每个图像的bbox
  2. 通过Page.addRedactAnnot(bbox, text=filename, ...)添加编校批注
  3. 完成页面后,执行Page.apply_redactions()。这将删除所有图像和所有密文。所选文件名将显示在前一个图像bbox中
  4. 另存为新文档

确保使用PyMuPDF v1.17.0或更高版本

相关问题 更多 >

    热门问题