1

我正在尝试使用 Open XML 库从保存的 HTML 文件中生成 word doc。如果 HTML 文件不包含图像,我可以简单地使用下面的代码并将文本内容写入 word doc。

HtmlDocument doc = new HtmlDocument();
doc.Load(fileName); //fileName is the Htm file
string Detail = string.Empty;
string webData = string.Empty;
HtmlNode hcollection = doc.DocumentNode.SelectSingleNode("//body");
Detail = hcollection.InnerText;

但是,如果 HTML 文件包含嵌入的图像,我很难将该图像包含在 word doc 中。

使用hcollection.InnerText仅写入文本部分并排除图像。

当我使用

HtmlNode hcollection = doc.DocumentNode.SelectSingleNode("//body");
Detail = hcollection.InnerHtml;

所有的 HTML 标记都与标记中的 Image 路径一起写入 word doc

<table border='0' width='100%' cellpadding='0' cellspacing='0' align='center'>
<tr><td valign='top' align="left">
<div style='width:100%'><div id="div_img">
<div>
 <img src="http://www.myweb.com/web/img/2013/07/18/img_1.jpg">
 <span>Sample Text</span></div></div><br><br>Sample Text Content here<br><br>                         </div></td></tr></table>

如何删除 html 标签,而不是显示的路径

<img src="http://www.myweb.com/web/img/2013/07/18/img_1.jpg">

相应的图片被加载。

请帮忙。

4

2 回答 2

1

实际上,将 HTML 文档转换为 MS Word 是一项非常复杂的任务,除了 IMAGE 标记之外,还有很多情况需要解决。Open XML 和 HTML 格式之间的区别绝对是决定性的。

如果我是你,我会为此寻找第 3 方工具。与花费数周时间调查和学习任务的各个方面、编写代码然后修复多个错误相比,为他们付费会更便宜。

我个人为此使用了 Aspose.Words 库。它工作得很好,但也许你想尝试另一个。

于 2013-07-18T09:38:45.407 回答
1

您需要查看 HTML 并以某种方式将其转换为 OpenXML。

我使用了HtmlToOpenXml开源库(license),效果很好。它应该处理图像(内联、本地或远程)并将它们正确地插入到 OpenXML 文档中。我最近提交了一个被接受的补丁,所以这个项目仍然有些活跃。

但是,该库有一些限制:

Javascript (<script>)、CSS <style>、<meta> 和其他不受支持的标签不会产生错误而是被忽略

它确实处理内联样式信息,但它完全忽略了其他 CSS,这是我需要的。我最终集成了对<style>来自另一个开源项目(jsonfx,使用MIT 许可证)的单个元素的一些简单解析。

注意:处理多个<style>元素、下载 CSS 文件、整理哪些样式规则优先——这些都是我没有解决的问题。

于 2013-07-18T16:35:37.810 回答