刚入行的菜鸟一枚,最近遇到一个问题就是将数据库中存储的照片写到生成的Word文档中。查阅了很多资料最终解决了这个问题。
我用的方法是在数据库中获取到存储的图片的二进制。将二进制流写到本地的文件夹中。然后从本地将图片导进Word中。
那么来看下我这种比较笨的解决方法。
Java代码:
jar包:
base64-2.3.8.jar (自己可以下载)
Blob blob=null;
BufferedInputStream is=null;
byte[] b=null;
try{
//我的是直接在数据库中查询出的存储在数据库中的图片的二进制
//也可以用其他方法获取图片的二进制,例子也比较多
rs=ps.executeQuery(sql)
;
if(rs.next()){
blob=rs.getBlob(
1)
;//获取图片的二进制
}
is=new BufferedInputStream(blob.getBinaryStream());
b=new byte[(int)blob.length]
int len=b.
length;
int offset=
0;
int read=
0;
while(offset < len && (read=is.read(b
,offset
,len-offset))>=
0){
offset+=read
;
}
}
BASE64Decoder decoder = new sun.misc.BASE64Decoder();
BASE64Encoder encoder = new sun.misc.BASE64Encoder();
try {
String content = encoder.encodeBuffer(b).trim();
byte[] bs = decoder.decodeBuffer(content);
for (int ii = 0; ii < bs.length; ii++) {
if (bs[ii] < 0) {
//调整异常数据
bs[ii] += 256;
}
}
//生成jpeg图片
String path = "D:\\Image\\a.jpg";// D:\Image这个路径可以自己指定。 a.jpg相当于一个模板(自认为)
OutputStream outs = new FileOutputStream(path);
outs.write(bs);
outs.flush();
outs.close();
System.out.println("新图片已生成!"); 第一次写东西,希望会有所帮助。写的不好请多多包涵!!
转载请注明原文地址: https://ju.6miu.com/read-674300.html