欢迎访问自建博客原文:
http://www.e-lionel.com/index.php/2019/02/28/102/
需求是前端传css和body过来,后端通过字符串拼接将数据拼成html的字符串,然后需要将这个html字符串转换为word的doc文件,并交由前端进行下载。下载方式为手机(通常是微信)扫描二维码,访问后台API或者是文件的物理路径实现下载。
首先尝试的是通过POI的方式,将html转成doc,然后返回给前端一个流,实现下载功能。
/**
* html转word
* @throws IOException
*/
public static void htmlToDoc(String html,String fileName,HttpServletResponse response,HttpServletRequest request) throws IOException {
byte b[] = html.getBytes("utf-8"); //这里是必须要设置编码的,不然导出中文就会乱码。
ByteArrayInputStream bais = new ByteArrayInputStream(b);//将字节数组包装到流中
/*
* 关键地方
* 生成word格式
*/
POIFSFileSystem poifs = new POIFSFileSystem();
DirectoryEntry directory = poifs.getRoot();
DocumentEntry do