首页>代码>java web导出插入图片到word文档的实例>/com.chen.springmvc/src/main/java/com/chen/springmvc/util/WordUtil.java
package com.chen.springmvc.util; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStreamWriter; import java.io.UnsupportedEncodingException; import java.io.Writer; import java.util.Map; import sun.misc.BASE64Encoder; import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException; public class WordUtil { private Configuration configuration = null; public WordUtil(){ configuration = new Configuration(); configuration.setDefaultEncoding("utf-8"); } //dataMap 要填入模本的数据文件 public void createDoc(Map<String,Object> dataMap,String fileName) { //设置模本装置方法和路径,FreeMarker支持多种模板装载方法。可以重servlet,classpath,数据库装载, //这里我们的模板是放在template包下面 System.out.println(WordUtil.class.getClassLoader().getResource("/template/")); configuration.setClassForTemplateLoading(WordUtil.class, "/template/"); Template t=null; try { //test.ftl为要装载的模板 // t = configuration.getTemplate("fctestpaper.ftl"); t = configuration.getTemplate("fctestpaper2.ftl"); //添加插入图片处理 } catch (IOException e) { e.printStackTrace(); } //输出文档路径及名称 File outFile = new File(fileName); Writer out = null; FileOutputStream fos=null; try { fos = new FileOutputStream(outFile); OutputStreamWriter oWriter = new OutputStreamWriter(fos,"UTF-8"); //这个地方对流的编码不可或缺,使用main()单独调用时,应该可以,但是如果是web请求导出时导出后word文档就会打不开,并且包XML文件错误。主要是编码格式不正确,无法解析。 //out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile))); out = new BufferedWriter(oWriter); } catch (FileNotFoundException | UnsupportedEncodingException e1) { e1.printStackTrace(); } try { t.process(dataMap, out); out.close(); fos.close(); } catch (TemplateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } /** * 图片处理 * @param imgFile * @return */ public String getImageStr(String imgFile){ InputStream in=null; byte[] data=null; try { in=new FileInputStream(imgFile); data=new byte[in.available()]; in.read(data); in.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } BASE64Encoder encoder=new BASE64Encoder(); return encoder.encode(data); } }
最近下载更多
adminjiang LV7
2023年11月26日
1006148200 LV7
2021年11月29日
123456nty LV37
2021年8月16日
xcwang LV11
2021年4月1日
liwentao0322 LV2
2021年1月17日
LiuHanWen LV2
2020年8月23日
whfuai LV14
2019年11月28日
756398953 LV12
2019年11月7日
zzxzzx940330 LV1
2019年8月19日
doutao6677 LV25
2019年8月5日
最近浏览更多
adminjiang LV7
2023年11月26日
为我所用 LV1
2022年6月21日
twv008
2022年1月24日
暂无贡献等级
tangjj7260 LV18
2021年12月25日
ylsh123
2021年12月6日
暂无贡献等级
mudai88
2021年12月1日
暂无贡献等级
1006148200 LV7
2021年11月27日
likuozhan
2021年9月28日
暂无贡献等级
adoutxv LV1
2021年9月24日
hua12306
2021年8月31日
暂无贡献等级