首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用.DOCX -docx的路径嵌入图像,迭代地将图像添加到.DOCX模板,并保存每个唯一的python?

如何使用.DOCX -docx的路径嵌入图像,迭代地将图像添加到.DOCX模板,并保存每个唯一的python?
EN

Stack Overflow用户
提问于 2020-09-25 03:55:55
回答 1查看 163关注 0票数 0

我正在尝试使用Python解决一个问题,这个问题涉及到图像文件的目录路径和python-docx库。

我有一个包含100个*.png文件的目录,这些文件是由一个单独的进程创建的独特的二维码:

代码语言:javascript
运行
复制
  codes_dir
    ├── qr_code001.png
    ├── qr_code002.png
    ├── qr_code003.png
    ├── qr_code004.png
    ├── qr_code005.png
    etc

我需要将每个*.png二维码嵌入到一个标准的.DOCX文件中,然后保存唯一的结果。.DOCX模板如下所示:

在此之后,每个文件需要如下所示:

然后在一个单独的目录中,我将有一个与每个唯一二维码的基名相对应的唯一.DOCX文件的列表,如下所示:

代码语言:javascript
运行
复制
  codes_dir
    ├── qr_code001.png
    ├── qr_code002.png
    ├── qr_code003.png
    ├── qr_code004.png
    ├── qr_code005.png
    etc
   docx_dir
    ├── qr_code001.docx
    ├── qr_code002.docx
    ├── qr_code003.docx
    ├── qr_code004.docx
    ├── qr_code005.docx
    etc

以下是我在docx_dir中尝试过的方法

代码语言:javascript
运行
复制
from docx import Document
import glob
import os

def embed_qr_code():
    doc = Document("path/to/template.docx")
    qr_images = glob.glob("path/to/codes_dir")
    for image in qr_images:
        image_name = os.path.basename(image)
        doc.add_picture(image)
        doc.save(f"{image_name}.docx")

embed_qr_code()

我最终得到了100个文件,如下所示:

代码语言:javascript
运行
复制
   docx_dir
    ├── qr_code001.png.docx
    ├── qr_code002.png.docx
    ├── qr_code003.png.docx
    ├── qr_code004.png.docx
    ├── qr_code005.png.docx
    etc

似乎可以工作,但不是每个.DOCX文件一个二维码图像,.DOCX文件包含...好吧,一个二维码都没有。我不明白为什么每个QR图像文件名都是唯一的。

你能帮我理解我做错了什么吗?感谢您能提供的任何帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-25 04:29:14

您必须为每个图像打开一个新文件。因此,将Document()调用向下移动到循环中,如下所示:

代码语言:javascript
运行
复制
def embed_qr_code():
    qr_images = glob.glob("path/to/codes_dir")
    for image in qr_images:
        image_name = os.path.basename(image)
        doc = Document("path/to/template.docx")
        doc.add_picture(image)
        doc.save(f"{image_name}.docx")

否则,doc会在添加图像时累积图像,因此第一个保存的文档得到一个,第二个文档得到一个加上另一个,依此类推,比如1,2,3,...图像与qr_images中的图像一样。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64053544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档