package com.fawkes.project.example.common.utils.pdf;
import com.fawkes.project.example.common.model.DamMomAttachmentInfo;
import com.fawkes.project.example.common.model.DamMomRiskInfo;
import com.fawkes.project.example.common.utils.DateUtils;
import com.fawkes.project.example.common.utils.ToolUtil;
import com.itextpdf.text.*;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.text.pdf.draw.DottedLineSeparator;
import com.itextpdf.text.pdf.draw.LineSeparator;
import org.apache.commons.codec.binary.Base64;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
import java.io.*;
import java.util.Date;
public class a {
public static void main(String[] args) {
//文件转换base64
String base64 = PDFToBase64("D:\\转换.txt");
System.out.println("D:\\转换.txt:"+base64);
//文件转换base64
File file = new File("D:\\转换.txt");
String base64Two = PDFToBase64Two(file);
System.out.println(base64Two);
//base64转换文件
base64StringToPDF(base64,"D:\\base64.txt");
base64StringToPDF(base64Two,"D:\\base64Two.txt");
}
/**
* 方法功能描述: 文件转换为Base64编码
* @param: pdfFile 文件
*/
public static String PDFToBase64Two(File pdfFile) {
String base64="";
try {
byte[] data = null;
FileInputStream fileInputStream = new FileInputStream(pdfFile);
int available = fileInputStream.available();
data = new byte[available];
fileInputStream.read(data);
fileInputStream.close();
base64 = Base64.encodeBase64String(data);
base64.replaceAll("\n", "").replaceAll("\r", "");
//base64.replaceAll("\\+", "%2B");
base64.replaceAll("/", "");
} catch (Exception e) {
}
return base64;
}
/**
* 方法功能描述: 文件转换为Base64编码
* @param: String sourceFile:源文件路径
*/
public static String PDFToBase64(String sourceFile) {
BASE64Encoder encoder = new BASE64Encoder();
FileInputStream fin =null;
BufferedInputStream bin =null;
ByteArrayOutputStream baos = null;
BufferedOutputStream bout =null;
File file = new File(sourceFile);
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;
}
/**
* 方法功能描述: 将base64编码内容转换为文件
*/
public static void base64StringToPDF(String base64Content,String imageSavePath ){
BASE64Decoder decoder = new BASE64Decoder();
BufferedInputStream bis = null;
FileOutputStream fos = null;
BufferedOutputStream bos = null;
try {
//1.base64编码内容转换为字节数组
byte[] bytes = decoder.decodeBuffer(base64Content);
ByteArrayInputStream byteInputStream = new ByteArrayInputStream(bytes);
bis = new BufferedInputStream(byteInputStream);
File file = new File(imageSavePath);
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{
try {
bis.close();
fos.close();
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
java实现PDF,TXT,转换base64
于 2022-12-15 15:20:21 首次发布