JAVA拼接合并多个PDF文件

近期遇到一个比较棘手的需求,将多个PDF文件合并为一个文件,经过万能的百度,找到了解决方案,记录下相关的信息

引入maven包

        
            org.apache.pdfbox
            fontbox
            2.0.1
        

        
            org.apache.pdfbox
            pdfbox
            2.0.1
        

具体实现逻辑

public class MergePdfTest {
    public static void main(String[] args) throws IOException, DocumentException {
        List files = new LinkedList();
        files.add("C:\\data\\test\\1_XXXX.pdf");
        files.add("C:\\data\\test\\2_XXXX.pdf");
        files.add("C:\\data\\test\\3_XXXX.pdf");
        files.add("C:\\data\\test\\4_XXXX.pdf");
        files.add("C:\\data\\test\\5_XXXX.pdf");
    
        String savepath = "C:\\data\\test\\output\\final.pdf";
        mergePdfFiles(files, savepath);
    }
 
    /**
     * 合并原pdf为新文件
     *
     * @param files   pdf绝对路径集
     * @param newfile 新pdf绝对路径
     * @return
     * @throws IOException
     * @throws DocumentException
     */
    public static void mergePdfFiles(List files, String newfile) throws IOException, DocumentException {
        Document document = new Document(new PdfReader(files.get(0)).getPageSize(1));
        PdfCopy copy = new PdfCopy(document, new FileOutputStream(newfile));
        document.open();
        for (int i = 0; i < files.size(); i++) {
            System.out.println("合并文件:"+files.get(i));
            PdfReader reader = new PdfReader(files.get(i));
            int n = reader.getNumberOfPages();
            for (int j = 1; j <= n; j++) {
                document.newPage();
                PdfImportedPage page = copy.getImportedPage(reader, j);
                copy.addPage(page);
            }
        }
        document.close();
    }
}
 

你可能感兴趣的:(eclipse,java)