java实现将base64编码转换成图片或PDF

工作中遇到使用C#将文本数据和pdf(base64编码过的)以json提交到Java开发的系统。

本来是C#开发,现在尝试一下用JAVA来解析提交过来的base64编码的字符串,恢复成PDF。

当然,图片也一样,只是把扩展名改一下就行了(前提是,发过来的base64字符串,本身就是从图片或pdf生成的)。

最初查找到的资料是用sun.misc.BASE64Encoder来的解析的,这是老的方式,现在大部分不用这种,而是使用推荐的

http://commons.apache.org/proper/commons-codec/download_codec.cgi

在这里下载

Apache Commons Codec 1.10

解压后,将commons-codec-1.10.jar

放进在java项目中新建的libs目录中。

代码如下:

import java.io.FileOutputStream;
import java.io.OutputStream;
import org.apache.commons.codec.binary.Base64;

public class test {
public static void main(String[] args) {
System.out.println(“Hello, world”);
// base64字符串转化成图片
// String imgStr=”base64编码的PDF文件”;
String imgStr = “base64编码的jpg文件”;
// 对字节数组字符串进行Base64解码并生成图片
if (imgStr == null) // 图像数据为空
return;

try {
// Base64解码
Base64 base64 = new Base64();
byte[] b = base64.decodeBase64(imgStr.getBytes());
for (int i = 0; i < b.length; ++i) {
if (b[i] < 0) {// 调整异常数据
b[i] += 256;
}
}
// 生成jpeg图片
String imgFilePath = “d://jpgfile.jpg”;// 新生成的jpg
// String imgFilePath = “d://pdffile.pdf”;//新生成的PDF
OutputStream out = new FileOutputStream(imgFilePath);
out.write(b);
out.flush();
out.close();
return;
} catch (Exception e) {
return;
}
}

}