如何使用Open XML将docx转换为带有格式的HTML文件

7
我知道有很多问题都有相同的标题,但是我目前遇到了一些问题,我没有找到正确的解决方法。
我正在使用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可以做到这一点。但如果有使用开放式XML或其他开源方式的方法,我更喜欢使用它们。


PowerTools for Open XML刚刚发布了一个新的HtmlConverter模块,其中包含一个从DOCX转换为带CSS格式的HTML的开源、免费实现。模块HtmlConverter.cs支持所有段落、字符和表格样式、字体和文本格式、编号和项目符号列表、图像等。请访问http://bit.ly/1bclyg9。 - Eric White
4个回答

9

PowerTools for Open XML刚发布了一个新的Html转换模块。它现在包含一个开源、免费的实现,可以将DOCX转换为带有CSS格式的HTML。HtmlConverter.cs模块支持所有段落、字符和表格样式、字体和文本格式、编号和项目符号列表、图像等。请参见https://openxmldeveloper.org/


1
http://www.ericwhite.com/blog/transform-docx-to-htmlcss-with-high-fidelity-using-powertools-for-open-xml/ - Иво Недев

0

你的最终结果可能不会与你的Word文档完全一样,但这个链接可能会有所帮助。


这不会转换格式,例如段落字体或字符字体。 - Sachin

0

你可能想要找一个外部工具来帮助你完成这个任务,比如Aspose Words


-1

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