Java之HTML富文本导出WORD(不含图片)

一、需求:

我们在使用富文本编辑器来编辑文本的时候,文本会自带HTML的标签比如

等来修饰字体样式。

比如ueditor、kindeditor等富文本编辑器。

那么,我们如何将富文本编辑器里的内容导出到word文档里?


二、思路:

word文档是可以识别完整的html页面的,所以我们需要将首尾缺失的标签补齐。

1.首先我们需要建立一个word导出的工具类:

/**

* html 导出 word 工具类

* @author zhangxiang

*

*/

public class WordUtil {

    public static void exportWord(HttpServletRequest request, HttpServletResponse response, String content, String fileName) throws Exception {

        byte b[] = content.getBytes("GBK");  //这里是必须要设置编码的,不然导出中文就会乱码。

        ByteArrayInputStream bais = new ByteArrayInputStream(b);//将字节数组包装到流中

        POIFSFileSystem poifs = new POIFSFileSystem();

        DirectoryEntry directory = poifs.getRoot();

        DocumentEntry documentEntry = directory.createDocument("WordDocument", bais); //该步骤不可省略,否则会出现乱码。

        //输出文件

        request.setCharacterEncoding("utf-8");

        response.setContentType("application/msword");//导出word格式

        response.addHeader("Content-Disposition", "attachment;filename=" +

                new String(fileName.getBytes("GB2312"),"iso8859-1") + ".doc");

        ServletOutputStream ostream = response.getOutputStream();

        poifs.writeFilesystem(ostream);

        bais.close();

        ostream.close();

        poifs.close();

    }

}

然后将富文本的内容拼接成一个HTML页面:

StringBuffer sbf = new StringBuffer();

sbf.append("");    //缺失的首标签

sbf.append(content);    //富文本内容

sbf.append("");   //缺失的尾标签

WordUtil.exportWord(request,response,sbf.toString(),wordName);




===========================

以上便是本文的全部内容了,不知道对你有没有帮助呢。

我会认真写好每一篇文章,一直努力下去~

===========================

你可能感兴趣的:(Java之HTML富文本导出WORD(不含图片))