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

一、需求:

我们在使用富文本编辑器来编辑文本的时候,文本会自带HTML的标签比如<p> <a>等来修饰字体样式。

比如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("<html><body>");    //缺失的首标签

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

sbf.append("</body></html>");   //缺失的尾标签

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




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

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。