首页 > 解决方案 > Python 使用 mammoth 将 docx 转换为 html:缺少 html、head 和 body 标签

问题描述

我正在尝试使用mammoth包将简单的 docx 文件转换为 HTML 文件。但似乎生成的 html 仅包含完整 HTML 文件的一部分:生成的 html 字符串中都缺少 HTML、head 和 body 标记。

我想知道是否有参数可以使 HTML 成为有效的 HTML 代码。

标签: pythonhtmlmammoth

解决方案


我阅读了文档,但没有找到生成完整 HTML 的选项。由于生成的 HTML 只是一个字符串,因此很容易使其完全兼容 HTML:

import mammoth

with open("test.docx", "rb") as docx_file:
    result = mammoth.convert_to_html(docx_file)
    html = result.value  # The generated HTML
    messages = result.messages  # Any messages,

    full_html = (
        '<!DOCTYPE html><html><head><meta charset="utf-8"/></head><body>'
        + html
        + "</body></html>"
    )

    with open("test.html", "w", encoding="utf-8") as f:
        f.write(full_html)

在上面的代码中,我们只是预先添加了必要的开始和结束标记,以使html字符串成为有效的 HTML 源代码。


推荐阅读