讲师中心 微信公众号

工具推荐

视频效率加速
Seko
Seko

AI短剧一键生成成片

Laper
Laper

剧本策划到成片协作

立刻MV
立刻MV

低成本歌曲 MV、视频生成

updream

一键生成高质量推广成片

Python docx文档合并后图片丢失了怎么办?

阿浩小哥_1544

阿浩小哥_1544

发布时间:2025-03-09 11:26:19

|

1226人浏览过

|

来源于php中文网

原创

python docx文档合并后图片丢失了怎么办?

Python docx文档合并导致图片丢失的解决方案

使用Python的docx库合并多个Word文档时,经常会遇到合并后图片丢失的问题。本文分析并解决以下代码片段中出现的此类问题:

from docx import Document

def mergeDocx(pathList, savePath):
    combined_document = Document()
    for path in pathList:
        document = Document(path)
        for element in document.element.body:
            combined_document.element.body.append(element)
    combined_document.save(savePath)

这段代码直接复制文档元素,导致图片丢失。docx库处理图片时,需要将图片文件与文档一起保存,简单的元素复制无法保证图片路径的正确性。

解决方案:

立即学习“Python免费学习笔记(深入)”;

问题根源在于直接复制元素没有处理图片的引用关系。解决方法需要遍历文档,提取文本和图片,然后将它们添加到新文档中,并正确处理图片的引用路径和大小。

Biopython
Biopython

全面的分子生物学工具集。适用于序列操作、文件解析(FASTA/GenBank/PDB)、系统发育分析,以及通过 Bio.Entrez 以编程方式访问 NCBI/

下载

改进后的代码 (示例,需根据实际情况调整):

from docx import Document
from docx.shared import Inches
import os

def mergeDocx(pathList, savePath):
    combined_document = Document()
    output_dir = os.path.dirname(savePath) # 获取输出目录

    for path in pathList:
        document = Document(path)
        for element in document.element.body:
            if element.tag == "{http://schemas.openxmlformats.org/wordprocessingml/2006/main}drawing":
                # 处理图片元素
                inline = element.xpath('.//w:inline')[0]
                img_path = inline.xpath('.//wp:docPr/@descr')[0]
                img_path = os.path.join(os.path.dirname(path), img_path) # 获取图片绝对路径

                # 复制图片到输出目录
                img_name = os.path.basename(img_path)
                new_img_path = os.path.join(output_dir, img_name)
                if not os.path.exists(new_img_path):
                    shutil.copy2(img_path, new_img_path) # 复制图片,保留元数据

                # 将图片添加到新文档,并调整大小(可选)
                combined_document.add_picture(new_img_path, width=Inches(5))
            else:
                combined_document.element.body.append(element)

    combined_document.save(savePath)
import shutil # 导入shutil模块用于复制文件

此代码片段首先获取输出目录,然后遍历每个文档的元素。如果遇到图片元素,它会提取图片路径,复制图片到输出目录,并添加到新文档中,同时可以调整图片大小。 非图片元素则直接添加到新文档。 请注意,你需要安装shutil模块 (pip install shutil)

更高级的方案:

对于更复杂的文档或需要更可靠的解决方案,可以考虑使用更高级的docx库或其他方法,例如将docx文件转换为html或rtf文件进行合并,然后再转换回docx文件。

总而言之,直接复制元素的方法在处理图片等复杂元素时容易出错。需要对图片元素进行特殊处理,才能确保合并后的文档正确显示图片。 以上代码提供了一个更稳健的处理方法,但可能需要根据你的具体文档结构进行调整。

热门AI工具

更多
WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

讯飞智文

一款面向学习和办公场景的AI文档创作工具,可辅助生成PPT与Word文档,提高资料整理和内容制作效率。

花生AI
花生AI Hot

一款AI视频创作工具,主要用于B站推出的AI视频创作工具,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

相关专题

更多
pip安装使用方法
pip安装使用方法

安装步骤:1、确保Python已经正确安装在您的计算机上;2、下载“get-pip.py”脚本;3、按下Win + R键,然后输入cmd并按下Enter键来打开命令行窗口;4、在命令行窗口中,使用cd命令切换到“get-pip.py”所在的目录;5、执行安装命令;6、验证安装结果即可。大家可以访问本专题下的文章,了解pip安装使用方法的更多内容。

3570

2023.10.09

更新pip版本
更新pip版本

更新pip版本方法有使用pip自身更新、使用操作系统自带的包管理工具、使用python包管理工具、手动安装最新版本。想了解更多相关的内容,请阅读专题下面的文章。

8083

2024.12.20

pip设置清华源
pip设置清华源

设置方法:1、打开终端或命令提示符窗口;2、运行“touch ~/.pip/pip.conf”命令创建一个名为pip的配置文件;3、打开pip.conf文件,然后添加“[global];index-url = https://pypi.tuna.tsinghua.edu.cn/simple”内容,这将把pip的镜像源设置为清华大学的镜像源;4、保存并关闭文件即可。

9782

2024.12.23

python升级pip
python升级pip

本专题整合了python升级pip相关教程,阅读下面的文章了解更多详细内容。

5147

2025.07.23

word背景色怎么改成白色
word背景色怎么改成白色

Word是微软公司的一个文字处理器软件。word为用户提供了专业而优雅的文档工具,帮助用户节省时间并得到优雅美观的结果。word提供了许多易于使用的文档创建工具,同时也提供了丰富的功能供创建复杂的文档使用。怎么word背景色怎么该呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

4611

2023.07.21

word最后一页空白页怎么删除
word最后一页空白页怎么删除

word最后一页空白页删除方法有:通过删除回车符、调整页边距、删除分节符或调整分页符位置,您可以轻松去除最后一页的空白页。根据您实际的文档情况,选择适合您的方法进行操作,使您的文档更加美观和整洁。本专题为大家提供word最后一页空白页怎么删除不了相关的各种文章、以及下载和课程。

1160

2023.07.24

word最后一页空白页怎么删除不了
word最后一页空白页怎么删除不了

word删除最后一页空白页,可以尝试使用Backspace键删除空白页,如果无效,查找和删除分页符,或者调整页面边距和行距。还可以尝试将文档保存为其他格式并重新打开和保存。本专题为大家提供word最后一页空白页为啥删除不了的相关的文章、下载、课程内容,供大家免费下载体验。

3442

2023.07.25

word单页改变纸张方向
word单页改变纸张方向

word单页改变纸张方向:1、在界面上选择文档纸张方向;2、自定义页面设置;3、分节功能。本专题为大家提供word单页改变纸张方向的相关的文章、下载、课程内容,供大家免费下载体验。

1420

2023.07.27

Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

80

2026.11.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn