spring boot pdf 合并
1.其它文件请参照前面水印
2.请求参数,pdf base64.
@ApiModel
@Data
public class PdfMergerRequest {
private String fileType;
private ArrayList<PdfFile> fileList;
}
{
"fileList": [
{
"base64": ""
},{
"base64": ""
},{
"base64": ""
}
],
"fileType": ""
}
3.具体实现方法
public PdfMergerResponse mergerPdf(PdfMergerRequest re) {
ArrayList<String> pList = new ArrayList<>();
Properties properties = System.getProperties();
String baseUrl = properties.getProperty("user.dir")+"\\src\\main\\resources\\pdf\\";
String pdfPath = baseUrl+UUID.randomUUID().toString()+".pdf";
// String orgPdf = baseUrl+UUID.randomUUID().toString()+".pdf";
GLFile.decryptByBase64(re.getFileList().get(0).getBase64(),pdfPath);
for(PdfFile pdfFile : re.getFileList()){
String aPdf = baseUrl+UUID.randomUUID().toString()+".pdf";
GLFile.decryptByBase64(pdfFile.getBase64(),aPdf);
pList.add(aPdf);
}
PdfDocument pdfDoc = null;
try {
pdfDoc = pdfDoc = new PdfDocument(new PdfWriter(pdfPath));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
PdfMerger merger = new PdfMerger(pdfDoc);
try {
for(String p : pList){
PdfDocument cover = new PdfDocument(new PdfReader(p));
merger.merge(cover, 1, cover.getNumberOfPages());
cover.close();
File pFile = new File(p);
pFile.delete();
}
} catch (IOException e) {
e.printStackTrace();
}
pdfDoc.close();
File pdfFile = new File(pdfPath);
pdfFile.delete();
PdfMergerResponse pdfMergerResponse = new PdfMergerResponse();
pdfMergerResponse.setCode(1);
pdfMergerResponse.setPdfStr(GLFile.encryptToBase64(pdfPath));
return pdfMergerResponse;
}
4.返回值也是base64.
@ApiModel
@Data
public class PdfMergerResponse extends BaseResponse {
private String pdfStr;
}