You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用pypandoc转换docx为html时图片缺失、文本格式丢失如何解决

修正后可运行代码

import pypandoc
import os

# 替换为实际docx文件路径
filename = <filepath>
# 图片存储文件夹,和输出HTML同目录即可
media_save_path = "./docx_extract_media"

output = pypandoc.convert(
    filename,
    to='html',
    extra_args=[
        f"--extract-media={media_save_path}",
        "--standalone",
        "--embed-resources",
        "--from=docx+styles",
        "--metadata", 'title="docx转换结果"'
    ]
)

html_save_path = f"{os.path.splitext(filename)[0]}.html"
with open(html_save_path, "w", encoding="utf-8") as f:
    f.write(output)

问题修复说明

图片无法正常显示修复

  • 原代码缺失os模块导入,会导致路径处理异常,首先补充导入
  • --extract-media指定的路径使用和HTML输出位置同级的相对路径,HTML生成的img标签src会自动匹配对应图片位置,无需手动修改
  • 若需要单文件HTML无需附带图片文件夹,可删除--extract-media参数,新增--self-contained参数,所有图片会自动转为base64编码内嵌到HTML中,完全避免路径问题

文本样式丢失、全变黑白修复

  • 新增--standalone参数:默认pandoc仅输出HTML的body内容片段,不会携带完整样式定义,该参数会生成包含head、body的完整HTML结构,自动保留docx默认样式表
  • 新增--from=docx+styles参数:告诉pandoc读取docx中的自定义样式配置,包括文本颜色、字体、字号、段落格式等,不会默认清除自定义格式
  • 新增--embed-resources参数:所有样式资源会直接内嵌到HTML文件中,无需单独携带css文件,避免样式丢失
  • 写入文件时指定encoding=utf-8,避免中文、特殊字符乱码问题,同时无需额外做编码判断转换

注意事项

  • 需保证本地已安装完整版pandoc程序,pypandoc仅为调用封装,本身不自带转换内核
  • 若存在特殊自定义样式未保留,可在extra_args中添加--css=自定义样式文件路径,自行补充样式规则覆盖默认配置

内容的提问来源于stack exchange,提问作者Divyayan Dey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 23:09:01