一、需求:
我们在使用富文本编辑器来编辑文本的时候,文本会自带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);
===========================
以上便是本文的全部内容了,不知道对你有没有帮助呢。
我会认真写好每一篇文章,一直努力下去~
===========================