我用猛犸象试过了:
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'
答案 0 :(得分:2)
Mammoth .docx to HTML converter
Mammoth旨在转换.docx文档,例如Microsoft Word创建的文档,并将它们转换为HTML。 Mammoth旨在通过使用文档中的语义信息生成简单而干净的HTML,并忽略其他细节。例如,Mammoth将任何带有Heading 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
答案 1 :(得分:1)
您可以为此目的使用pypandoc模块。参见下面的代码
导入pypandoc 输出= pypandoc.convert_file('file.docx','docx',outputfile =“ file_converted.html”)
答案 2 :(得分:1)
您遇到的问题可能是猛ma象不会创建合法的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)
在test.html中,无论您给文档加上的标题是什么。
我不为此而功劳,我也在这里找到了它,但是找不到源帖子。
答案 3 :(得分:0)
如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