我正在尝试使用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文件包含嵌入的图像,我很难将该图像包含在单词doc中。
使用hcollection.InnerText
仅写入文本部分并排除图像。
当我使用
时HtmlNode hcollection = doc.DocumentNode.SelectSingleNode("//body");
Detail = hcollection.InnerHtml;
所有HTML标记都会与标记
中的Image路径一起写入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">
相应的图片被加载。
请帮忙。
答案 0 :(得分:1)
实际上将HTML文档转换为MS Word是一项非常复杂的任务,除了需要解决的IMAGE标签之外还有很多其他情况。 Open XML和HTML格式之间的区别绝对是决定性的。
如果我是你,我会寻找第三方工具。支付费用比花费数周时间调查和学习任务的各个方面,编写代码,然后修复多个错误一样是明智的。
Personaly我使用了Aspose.Words库。它工作得很好,但也许你想尝试另一个。
答案 1 :(得分:1)
您需要查看HTML并以某种方式将其转换为OpenXML。
我使用过HtmlToOpenXml开源库(license),而且运行良好。它应该处理图像(内联,本地或远程)并正确地将它们插入OpenXML文档。我最近提交了一个被接受的补丁,所以该项目仍然有点活跃。
但是图书馆有一些限制:
Javascript(&lt; script&gt;),CSS&lt; style&gt;,&lt; meta&gt;和其他不支持的标签不会产生错误,但忽略。
它确实处理内联样式信息,但它完全忽略了其他CSS,这是我需要的东西。我最后使用jsonfx集成了来自另一个开源项目(MIT license)的单个<style>
元素的简单解析。
注意:处理多个<style>
元素,下载CSS文件,整理出哪些样式规则优先 - 这些都是我没有解决的问题。