【问题标题】:How to write rich text to word document generated from htm file in C#如何将富文本写入从 C# 中的 htm 文件生成的 word 文档
【发布时间】:2014-05-23 03:49:57
【问题描述】:

我正在尝试使用 Open XML 库从保存的 HTML 文件中生成 word 文档。 如果 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 标签都被写入 word doc 以及标签中的 Image 路径

<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">

相应的图片被加载。

请帮忙。

【问题讨论】:

    标签: c# asp.net openxml openxml-sdk


    【解决方案1】:

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

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

    虽然这个库有一些限制:

    Javascript (

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 不,不是。但是你可以再次尝试找到另一个开源的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-02
      • 1970-01-01
      • 2017-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多