问题摘要:web项目中有个功能,需要将动态页面保存为word,该页面中含有图片,数据库使用blob格式保存
实现思路:使用ftl保存word模板,后台部分直接将所有数据处理好交给ftl即可。其中blob数据需要转换为base64,word方可正确显示
详细方法:1,准备好需要的word模板,将文字类变量用${}替换,图片部分保留不动,word文档另存为xml格式;
2,使用文本编辑器打开xml文件,这时候会看到xml文档中出现很长串的英文字符码,为图片base64编码,替换为${}保存,并将xml代码保存为ftl文件;
3,java后台代码处理数据,
BLOB image=获取的blob数据;
InputStream inStream = image.getBinaryStream();
long nLen = image.length();
if(nLen > 0){
int nSize = (int) nLen;
byte[] data = new byte[nSize];
inStream.read(data);
inStream.close();
BASE64Encoder encoder = new BASE64Encoder();
String rohto = encoder.encode(data);
rohto为base64编码,作为参数传递给ftl展示即可