导出方式将word中的模板另存为xml形式,再将xml代码拷入jsp页面,其中项目中的图片上传保存在tomcat中
方法:获取图片的路径从而得到图片,再将图片装换成base64码,再在刚才的jsp页面${images}即可
1.在word模板中先插入一张图片,再将生成的xml代码放到ExportWord.jsp中,将刚才插入的图片的base64码(就是很多那个十六进制的东西)去掉,再在该jsp的顶部加上
<%@page contentType="application/msword; charset=UTF-8"%><%@ taglib
prefix="s" uri="/struts-tags"%><%response.addHeader("Content-Disposition",
"attachment;filename="+request.getAttribute("strExpFileName")+".doc");%><?xml version="1.0" encoding="UTF-8" standalone="yes"?>
注:此处代码最好原封不动的,不要给它换行或者调换代码位置,因为如果此处甚至一换行都有可能到时候导出时word提示有错误,我之前特意试过,至于原因自己也不知道
2.后台代码
将将图片转成base64码的方法
/**
* 将图片转成base64码
* @return
*/
public static String getImageBinary(String imagepath) {
File f = new File(imagepath);
BufferedImage bi;
try {
bi = ImageIO.read(f);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(bi, "jpg", baos);
byte[] bytes = baos.toByteArray();
return encoder.encodeBuffer(bytes).trim();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
调用该方法
//通过一系列方法通过tomcat获取你想要图片的路径,例如下面是方法之一
ServletActionContext.getServletContext().getRealPath("此处写上图片存储的路径")
//现在如果已经取到了你想要的图片的路径saveFilePath。例如
saveFilePath="C:\Program Files\.....\abcd.png";
//将“\”换成“\\”,调用getImageBinary方法时得是“\\”
saveFilePath=saveFilePath.replace("\\", "\\\\");
StringBuilder str=new StringBuilder();
//取得图片的base64码
str.append(getImageBinary(saveFilePath));
images=str.toString();//images就是图片的base64码
//此处的strExpFileName就是ExportWord.jsp中上面的变量名
strExpFileName=new String("导出图片".getBytes("GB2312"), "8859_1");
3.在ExportWord.jsp中刚才去掉base64码的位置加上
${images}
分享到:
相关推荐
java:多个图片导出到word文档里显示,用于打印图片导出
java语言,后台导出图片到word文档中,这是一种简易的写法,基本上一眼即可看懂。亲测有效。如果有需要的,可以下载进行参考。
java freemarker导出word -包含多张图片导出
最近因项目开发的需要,整理了一份用JAVA导出WORD文档,其部署步骤如下: 1、将jacob-1.14.3-x86.dll放在服务器的系统盘(或运行本机的系统):\WINDOWS\system32目录下。 2、将jacob-1.14.3-x86.dll放在JDK 的 bin ...
WORD导出,并插入图片
java导出word使用freemarker模板map数据导出word带图片 可以循环map 中list。 调用的2种方法在博客 https://blog.csdn.net/yjflinchong/article/details/122614203
完整的JAVA导出WORD源代码,解压即可运行
在日常的开发工作中,我们时常会遇到导出Word文档报表的需求,比如公司的财务报表、医院的患者统计报表、电商平台的销售报表等等。 导出Word方式多种多样,通常有以下几种方式: 1. 使用第三方Java工具类库Hutool的...
java导出文件, freemarker导出word需要ftl文件,java导出Word常见问题。2.TXT修改后缀名为.ftl
java word导出java word导出java word导出java word导出java word导出
实现java中导出一定模板格式的word文档,支持word2003.
基于破解版aspose.words实现复杂word填充,最近有做一个案例,能够实现多个不同章节、自定义水印、自定义页码、目录等的自动...初步调试,导出3千多页的word文档,耗时大概20分钟。有需要示例代码可以私聊,一起探讨。
Java 导出 Word。 可直接运行,有说明文档,有注释,有jar文件。
一个java导出word的完整工程,可直接运行。利用word转换成xml格式,再转换成FreeMarker格式,生成doc文件
java导出到word,进行写操作,如表格、生成图片等.
网络上的根据模板填充Word我都看过一些, 它们的功能在数据换行的时候用的是run对象的.addCarriageReturn()方法,或者是直接用\n实现换行。这些都不符合我的需求, 因为我要的是分段,而不是换行。换行的word导致另一...
用java实现word统计报表和图形统计的导出
java集成freeMarker导出内含图片集合的word文档,模板
java导出文件到 pdf,excel,word java导出文件到 pdf,excel,word
stax-api-1.0.1.jar xmlbeans-2.4.0.jar ooxml-schemas-1.0.jar 这三个主要是java导出为word文件的jar包