无法使用Python将DOCX转换为HTML

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法使用Python将DOCX转换为HTML相关的知识,希望对你有一定的参考价值。

我用猛犸象尝试过:

import mammoth

result = mammoth.convert_to_html("MyDocument.docx")
print (result.value)

我没有得到HTML,但这个奇怪的代码:

kbW7yqZoo4h9pYM6yBxX1QFx2pCoPYflXfieIPbtqpT913Vk7OzcZdEk3eO7TbWjvZNTGilsfmRrPwDvB[...]

我也试过使用docx2html,但我无法安装它。当我运行pip install docx2html时,我收到此错误:

SyntaxError: Missing parentheses in call to 'print'
答案

Mammoth .docx to HTML converter

Mammoth旨在转换.docx文档,例如Microsoft Word创建的文档,并将它们转换为HTML。 Mammoth旨在通过使用文档中的语义信息生成简单而干净的HTML,并忽略其他细节。例如,Mammoth将带有样式标题1的任何段落转换为h1元素,而不是试图精确复制标题的样式(字体,文本大小,颜色等)。

.docx使用的结构与HTML的结构之间存在很大的不匹配,这意味着转换不太适合更复杂的文档。如果您只使用样式来语义标记文档,那么猛犸最有效。

目前支持以下功能:

  • 标题。
  • 列表。
  • 从您自己的docx样式到HTML的可自定义映射。例如,您可以通过提供适当的样式映射将WarningHeading转换为h1.warning。
  • 表。表格本身的格式(例如边框)当前被忽略,但文本的格式与文档的其余部分相同。
  • 脚注和尾注。
  • 图片。
  • 大胆,斜体,下划线,删除线,上标和下标。
  • 链接。
  • 换行。
  • 文本框。文本框的内容被视为单独的段落,该段落出现在包含文本框的段落之后。
  • 评论。

安装

pip install mammoth

基本转换

要将现有.docx文件转换为HTML,请将类文件对象传递给mammoth.convert_to_html。该文件应以二进制模式打开。例如:

import mammoth

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

您还可以使用mammoth.extract_raw_text提取文档的原始文本。这将忽略文档中的所有格式。每个段落后跟两个换行符。

with open("document.docx", "rb") as docx_file:
    result = mammoth.extract_raw_text(docx_file)
    text = result.value # The raw text
    messages = result.messages # Any messages
另一答案

documentation所述:

要将现有.docx文件转换为HTML,请将类文件对象传递给mammoth.convert_to_html。该文件应以二进制模式打开。例如:

import mammoth

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

以上是关于无法使用Python将DOCX转换为HTML的主要内容,如果未能解决你的问题,请参考以下文章

在 AWS Lambda 上使用 Python 将 MS Word(.doc 和 .docx)文件转换为 HTML

无法读取使用 soffice 命令转换 pdf 后得到的 .docx 文件

将带有(有序)列表的 docx 转换为 html

利用python将docx文件转为txt

ConvertAPI:将 HTML 转换为 DOCX 不适用于网格 css

如何将 HTML 标签转换为 WordDoc 文本格式?使用 DOCX.js 库