spring boot pdf 合并

原创
2022/05/05 16:45
阅读数 639

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;
}
展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部