使用itextPdf合并PDF

    xiaoxiao2022-07-06  204

    一 简介

    由于不同PDF合同有不同的条文,故需要拼接多个PDF

    二 项目依赖

    <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.4.2</version> </dependency>

    三 测试代码

    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.PdfReader; import java.io.FileOutputStream; import java.io.IOException; import java.util.Arrays; import java.util.List; /** * @author yinxinyao * @date 2019/5/21 15:06 */ public class MergePdfTest { public static void main(String[] args) throws IOException, DocumentException { String[] files = {"C:\\Users\\yinxinyao\\Desktop\\part2.pdf", "C:\\Users\\yinxinyao\\Desktop\\part3.pdf"}; String savepath = "C:\\Users\\yinxinyao\\Desktop\\final.pdf"; mergePdfFiles(Arrays.asList(files), savepath); } /** * 合并原pdf为新文件 * * @param files pdf绝对路径集 * @param newfile 新pdf绝对路径 * @return * @throws IOException * @throws DocumentException */ public static void mergePdfFiles(List<String> 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++) { 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(); } }

     

    最新回复(0)