日期:2014-05-17  浏览次数:20638 次

html转换到word


最近在项目中需要将通过富文本编辑器处理过的文字转换为Word,查了很久,大家通常的解决办法是使用Jacob或POI等组件直接生成Word,但是都无法将富文本编辑器处理过的文字保留样式并保存为Word,最终以失败而告终,无奈只有自己研究Word的格式转换;

分析了转换过程,总体分两个步骤:

1、实现富文本中样式代码的分离;

2、保留CSS样式;

其实以上两个步骤是相互矛盾的处理过程,无法通过Jacob或POI组件加正则表达式过滤解决,于是进行了以下步骤的实验:

1、首先创建了一个空白word文档,格式(office 2003格式或office 2007格式)不限;

2、将word格式保存为html格式,通过Edit Plus打开,发现代码中使用了office的命名空间,同时使用了office命名空间的标签定义了CSS样式,自己测试了一下,将生成的html文件头和尾拷贝出来:代码如下:

[html] view plaincopy

    <html xmlns:v="urn:schemas-microsoft-com:vml"  
    xmlns:o="urn:schemas-microsoft-com:office:office"  
    xmlns:w="urn:schemas-microsoft-com:office:word"  
    xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"  
    xmlns="http://www.w3.org/TR/REC-html40">  
      
    <!-- 富文本代码区 -->  
      
    </html>  


以上HTML头是office的命名空间定义。

3、将使用富文本代码粘贴到红色标识的<!-- 富文本代码区 -->中,并以doc或docx格式保存文件;

4、大功告成,打开文件时,Word将会以“Web版视图”完美显示了富文本样式,成功解决了富文本代码中样式代码,并同时保留了格式;

目前研究的仅能保存文字,未处理有图片的代码,朋友们可以再研究一下带图片的富文本代码的转换;