一、需要的jar包
<dependency> <groupId>com.itextpdf</groupId> <artifactId>kernel</artifactId> <version>7.1.0</vers io n> </dependency> <dependency> <groupId>com.itextpdf</groupId> <artifactId>io</artifactId> <version>7.1.0</version> </dependency> <dependency> <groupId>com.itextpdf</groupId> <artifactId>layout</artifactId> <version>7.1.0</version> </dependency> <dependency> <groupId>com.itextpdf</groupId> <artifactId>forms</artifactId> <version>7.1.0</version> </dependency> <dependency> <groupId>com.itextpdf</groupId> <artifactId>pdfa</artifactId> <version>7.1.0</version> </dependency> <dependency> <groupId>com.itextpdf</groupId> <artifactId>pdftest</artifactId> <version>7.1.0</version> </dependency> <dependency> <groupId>com.itext pdf </groupId> <artifactId>font-asian</artifactId> <version>7.1.0</version> </dependency>
二、操作方法
import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.Date; import java.util.List; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.pdf.PdfCopy; import com.itextpdf.text.pdf.PdfImportedPage; import com.itextpdf.text.pdf.Pdf reader ; /** * 多个PDF合成一个 * @param List<String> fileList 多个文件地址 * @param String savepath 合成后的pdf地址 * @author shenkk * @date 2018年11月13日 下午3:53:36 */public class PDFMergeUtil { public static void main(String[] args) { String savepath = "/uploadFile/bing.pdf"; String file1 = "/uploadFile/file1.pdf"; String file2 = "/uploadFile/file2.pdf"; String file3 = "/uploadFile/file3.pdf"; String file4 = "/uploadFile/file4.pdf"; System.out.println("start " + new Date()); List<String> list = new ArrayList<>(); list.add(file1); list.add(file2); list.add(file3); list.add(file4); morePdfTopdf(list, savepath); } public static void morePdfTopdf(List<String> fileList, String mergepath) { Document document = null; try { document = new Document(new PdfReader(fileList.get(0)).getPageSize(1)); PdfCopy copy = new PdfCopy(document, new FileOutputStream(mergepath)); document. open (); for (int i = 0; i < fileList.size(); i++) { System.out.println("获取的url:"+fileList.get(i)); PdfReader reader = new PdfReader(fileList.get(i)); int n = reader.getNumberOfPages();// 获得总页码 for (int j = 1; j <= n; j++) { document.newPage(); PdfImportedPage page = copy.getImportedPage(reader, j);// 从当前Pdf,获取第j页 copy.addPage(page); } } } catch (IOException e) { e.printStackTrace(); } catch (DocumentException e) { e.printStackTrace(); } finally { if (document != null) { document. close (); } } } }