/**
 *
 * 多个pdf文件合并为一个pdf文件
 * @Classname MulFileToOneUtils
 * @Description TODO
 * @Date 2023/6/14 0014 下午 2:01
 * @Created by Administrator
 */
public class MulFileToOneUtils {

    public static File MulFileToOne(List<File> files, String targetPath) throws Exception {

        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<File> files = new ArrayList();
        File file = new File("C:\\Users\\Administrator\\Desktop\\费用管理打印表格");
        File[] tempList = file.listFiles();
        //获取该文件夹下的文件(文件都是PDF)
        for (int i = 0; i < tempList.length; i++) {
            if (tempList[i].isFile() && tempList[i].getName().endsWith("pdf")) {
                files.add(tempList[i]);
            }
        }
        try {
            File f = MulFileToOne(files, "C:\\Users\\Administrator\\Desktop\\test.pdf");
            System.out.println(f.length());
        } catch (Exception e){
            e.printStackTrace();
        }
    }



}