如何将HTML文件转换为Word?

41

我需要将HTML文档保存在内存中,并转换为Word .DOC文件。

有人可以给我一些链接,介绍可用于此目的的闭源和开源库吗?

另外,我还应该编辑这个问题并添加我使用的编程语言,以缩小选择范围。


6
可以做到任何事情。你想在这上面花多少现金? - user1228
2
现在这才是一个真正的问题。 - user1228
1
@Mask:是的,请指明您正在使用哪种编程语言。 - Alan
如果你想让单词在浏览器中呈现的样子与HTML完全一致,那么这将是很困难的,除非你解析HTML并使用像Open Office XML等库将其写入Word格式,否则你可能需要投资商业转换器选项。我曾经试图寻找一个开源软件解决方案,但最终放弃了,并使用wkhtmltopdf将HTML转换为PDF,如果需要编辑,我可以使用Nitro PDF或Foxit :) - Deepu
1
@Mask 你可以尝试使用将HTML转换为格式良好的Microsoft Word文档 - 这是一篇由微软员工撰写的详细过程,他详细描述了如何将自己的在线LINQ via C# Tutorial转换为格式良好的MS Word文档。 - nam
5个回答

36

试着使用pandoc

pandoc -f html -t docx -o output.docx input.html

如果未明确指定输入或输出格式, pandoc 将尝试从输入和输出文件名的扩展名中猜测它。
--pandoc 手册
因此,您甚至可以使用
pandoc -o output.docx input.html

这个非常好用。在Ubuntu中就像使用sudo apt-get install -y pandoc一样简单。 - Alejo Dev
如果你需要比 MS Word 更多的功能,我认为这是一个不错的解决方案 - 它还提供了一个通用工具,可用于其他地方(例如从 HTML 转换为 PDF 等)。话虽如此,对于一个非常基本的选项,d4nt 建议的建议也同样有效 :) - Anton Babushkin
这在我的情况下不起作用。 - Beraliv
1
@Beraliv,您能否更具体地说明一下?您是否从pandoc收到任何错误消息?Word无法打开文档吗? - Jan
@Jan 好的,抱歉没有解释清楚。我的意思是转换并不理想:我无法以正确的方式转换公式(我指所有公式),样式比我预期的更糟糕,有些地方的文本看起来很糟糕(偏移、字体等)。是的,我要求很多。 - Beraliv

5

在你的php页面最前面添加以下代码,这应该是整个页面的第一行。

<?php
header("Content-Type: application/vnd.ms-word"); 
header("Expires: 0"); 
header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
header("content-disposition: attachment;filename=Hawala.doc");

?>

这将把所有的html转换为MSWORD,现在您可以根据客户的要求进行自定义。

1
最好使用 PHP。 - mintedsky
2
不仅限于PHP。Word可以打开doc文件中的HTML内容,但无法打开docx文件。真希望在我花费时间尝试各种转换方法之前就知道这一点。 - Steve Hiner
请注意,CSS的支持情况可能不稳定,您可能无法获得预期的“可编辑”结果。 - Dragas

5
一个不错的选择是使用像 Docverter 这样的 API。Docverter 可以通过 API 将 HTML 转换为 PDF 或 DOCX。

13
你忘记完成回答了吗? - Tyler Crompton
3
尽管答案未完成,在我看来,Docverter仍然证明了它是这个页面中最有用的洞察力 :) - Owen

4

在进行此操作时,我发现最简单的方法是:

  1. 使用网络浏览器访问页面
  2. 使用网络浏览器保存页面,使用.htm扩展名(可能还需要一个支持文件夹)
  3. 启动Word并打开保存的htm文件(Word将正确地打开它)
  4. 如有必要,进行任何编辑
  5. 选择“另存为”,然后选择您想要的扩展名doc、docx等。

我认为这个答案比重命名更好,但这只是我的看法 :) - yossico
如果您想要进行真正的转换,可以尝试使用像这样的HTML到DOCX API:https://grabz.it/html-to-word-docx-api.aspx - user1474090

1

1
docx4j-ImportXHTML采用这种方法。Java代码,也可在.NET环境中使用。 - JasonPlutext

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接