引入maven依赖:
<!-- 将两个或多个单独的PDF文件合并成一个PDF文件-->
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.21</version>
</dependency>
代码实现:
package com.ypk.swagger.utils.pdfUtils;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.pdfbox.io.MemoryUsageSetting;
import org.apache.pdfbox.multipdf.PDFMergerUtility;
/**
* @author lgn
* @version 1.0
* @date 2022/2/10 13:42
*/
public class PdfFileUtil {
/**
* pdf合并拼接
* @Title:mulFile2One
* @Description: TODO
* @param files 文件列表
* @param targetPath 合并到
* @return
* @throws IOException
*/
public static File mulFile2One(List<File> files,String targetPath) throws IOException{
// pdf合并工具类
PDFMergerUtility mergePdf = new PDFMergerUtility();
for (File f : files) {
if(f.exists() && f.isFile()){
// 循环添加要合并的pdf
mergePdf.addSource(f);
}
}
// 设置合并生成pdf文件名称
mergePdf.setDestinationFileName(targetPath);
// 合并pdf
mergePdf.mergeDocuments(MemoryUsageSetting.setupMainMemoryOnly());
return new File(targetPath);
}
public static void main(String[] args) throws IOException {
List files = new ArrayList();
files.add(new File("C:\\Users\\liangguannan\\Desktop\\PDF\\lgn.pdf"));
files.add(new File("C:\\Users\\liangguannan\\Desktop\\PDF\\lgn1.pdf"));
files.add(new File("C:\\Users\\liangguannan\\Desktop\\PDF\\lgn2.pdf"));
File f = mulFile2One(files, "C:\\Users\\liangguannan\\Desktop\\PDF\\mul2one.pdf");
System.out.println(f.length());
}
}