原创博文,欢迎转载,转载时请务必附上博文链接,感谢您的尊重。
前言
通过本篇的学习,你将学会Base64在实战中的使用,此工具包提供了常用的方法,如下:
- text明文【转】Base64字符串;
- text的Base64字符串【转】明文;
- 文件(图片、pdf等)【转】Base64;
- Base64【转】文件(图片、pdf等);
- 将pdf的Base64编码格式【转为】img的Base64编码格式,只限最后一页的Base64编码;
- 将pdf的Base64编码格式【转为】img的Base64编码格式,并将所有页合成一张图片的Base64编码;
- ...
有关Base64编码(Encode)与解码(Decode)的基础知识,请请看我另一篇博文:关于Base64编码(Encode)与解码(Decode)的几种方式,这里面有道道
一、所需的包
注意:java.util.Base64是JDK1.8中新增的类,所以它只支持JDK1.8及以后的版本,如果你的JDK版本低于1.8,请使用org.apache.commons.codec.binary.Base64.
下面的包,是用于Base64的pdf转img使用的,如果不需要要,可以不引用,并删掉对应的方法(前言中的5和6)。
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>fontbox</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.1</version>
</dependency>
二、Base64Util
Base64Util类,代码如下(可以直接复制使用,直接运行main方法看效果):
import org.apache.commons.lang3.StringUtils;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.ImageType;
import org.apache.pdfbox.rendering.PDFRenderer;
import java.awt.image.BufferedImage;
import java.io.*;
import javax.imageio.ImageIO;
import java.util.Base64;
public class Base64Utils {
// Base64 编码与解码
private static final Base64.Decoder DECODER_64 = Base64.getDecoder();
private static final Base64.Encoder ENCODER_64 = Base64.getEncoder();
// dpi越大转换后的图片越清晰,相对转换速度越慢
private static final Integer DPI = 200;
// 编码、解码格式
private static final String CODE_FORMATE = "UTF-8";
/**
* 1. text明文 转 Base64字符串
* @param text 明文
* @return Base64 字符串
*/
public static String textToBase64Str(String text) {
if (StringUtils.isBlank(text)) {
return text;
}
String encodedToStr = null;
try {
encodedToStr = ENCODER_64.encodeToString(text.getBytes(CODE_FORMATE));
} catch (UnsupportedEncodingException e) {
e.getMessage();
}
return encodedToStr;
}
/**