如何使用带格式的打开xml将docx转换为html文件

时间:2013-12-23 19:47:17

标签: c# html openxml

我知道有很多问题有相同的标题,但我目前遇到一些问题,我没有得到正确的方法。

我正在使用Open xml sdk 2.5和Power tool.docx文件转换为使用.html类进行转换的HtmlConverter文件。

我已成功将docx文件转换为Html文件,但问题是,html文件不保留文档文件的原始格式。例如。 字体大小,颜色,下划线,粗体等不会反映到html文件中。

这是我现有的代码:

public void ConvertDocxToHtml(string fileName)
{
   byte[] byteArray = File.ReadAllBytes(fileName);
   using (MemoryStream memoryStream = new MemoryStream())
   {
      memoryStream.Write(byteArray, 0, byteArray.Length);
      using (WordprocessingDocument doc = WordprocessingDocument.Open(memoryStream, true))
      {
         HtmlConverterSettings settings = new HtmlConverterSettings()
         {
            PageTitle = "My Page Title"
         };
         XElement html = HtmlConverter.ConvertToHtml(doc, settings);
         File.WriteAllText(@"E:\Test.html", html.ToStringNewLineOnAttributes());
      }
    }
 }

所以我只想知道是否有任何方法可以保留转换后的HTML文件中的格式。

我知道一些做同样事情的第三方API。但我更喜欢使用open xml或任何其他开源来做这件事。

4 个答案:

答案 0 :(得分:6)

Open XML的PowerTools刚刚发布了一个新的HtmlConverter模块。它现在包含一个开源的,免费实现从DOCX到HTML格式的转换。模块HtmlConverter.cs支持所有段落,字符和表格样式,字体和文本格式,编号和项目符号列表,图像等。见http://bit.ly/1bclyg9

答案 1 :(得分:1)

您可能希望找到一个外部工具来帮助您执行此操作,例如Aspose Words

答案 2 :(得分:0)

您的最终结果与Word文档的结果不完全相同,但this link可能有所帮助。

答案 3 :(得分:0)

您可以使用OpenXML Viewer扩展程序进行Firefox格式转换。 http://openxmlviewer.codeplex.com 这适合我。希望这会有所帮助。