Pdf与Base64编码之间的转换
Posted 孙悟空2015
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pdf与Base64编码之间的转换相关的知识,希望对你有一定的参考价值。
在我们的工作有时候我们需要将图片或者pdf文件转换为Base64编码,然后从服务器端下载传输到本地,在这里我列举下两者之间的转换方法:
Base64编码转换为pdf:
/**
* Description: 将base64编码内容转换为Pdf
* @param base64编码内容,文件的存储路径(含文件名)
* @Author fuyuwei
* Create Date: 2015年7月30日 上午9:40:23
*/
public static void base64StringToPdf(String base64Content,String filePath)
BASE64Decoder decoder = new BASE64Decoder();
BufferedInputStream bis = null;
FileOutputStream fos = null;
BufferedOutputStream bos = null;
try
byte[] bytes = decoder.decodeBuffer(base64Content);//base64编码内容转换为字节数组
ByteArrayInputStream byteInputStream = new ByteArrayInputStream(bytes);
bis = new BufferedInputStream(byteInputStream);
File file = new File(filePath);
File path = file.getParentFile();
if(!path.exists())
path.mkdirs();
fos = new FileOutputStream(file);
bos = new BufferedOutputStream(fos);
byte[] buffer = new byte[1024];
int length = bis.read(buffer);
while(length != -1)
bos.write(buffer, 0, length);
length = bis.read(buffer);
bos.flush();
catch (Exception e)
e.printStackTrace();
finally
closeStream(bis, fos, bos);
pdf转换为Base64编码:
/**
* Description: 将pdf文件转换为Base64编码
* @param 要转的的pdf文件
* @Author fuyuwei
* Create Date: 2015年8月3日 下午9:52:30
*/
public static String PDFToBase64(File file)
BASE64Encoder encoder = new BASE64Encoder();
FileInputStream fin =null;
BufferedInputStream bin =null;
ByteArrayOutputStream baos = null;
BufferedOutputStream bout =null;
try
fin = new FileInputStream(file);
bin = new BufferedInputStream(fin);
baos = new ByteArrayOutputStream();
bout = new BufferedOutputStream(baos);
byte[] buffer = new byte[1024];
int len = bin.read(buffer);
while(len != -1)
bout.write(buffer, 0, len);
len = bin.read(buffer);
//刷新此输出流并强制写出所有缓冲的输出字节
bout.flush();
byte[] bytes = baos.toByteArray();
return encoder.encodeBuffer(bytes).trim();
catch (FileNotFoundException e)
e.printStackTrace();
catch (IOException e)
e.printStackTrace();
finally
try
fin.close();
bin.close();
bout.close();
catch (IOException e)
e.printStackTrace();
return null;
我们在直接使用这两个类的时候,Eclipse会报错:
BASE64Encoder encoder = new sun.misc.BASE64Encoder();
BASE64Decoder decoder = new sun.misc.BASE64Decoder();
解决方法如下:
右击项目—->build path—–>configure build path
点击OK,保存
以上是关于Pdf与Base64编码之间的转换的主要内容,如果未能解决你的问题,请参考以下文章
如何在kotlin android中将pdf文件编码为base64字符串
像图像或 PDF 文件这样的 MIME 类型不需要 base64 或以其他方式编码吗?
Java如何进行Base64的编码(Encode)与解码(Decode)?