pdf 合并

    xiaoxiao2022-07-06  189

    由于某些原因需要进行pdf合并,但是网上的大部分都只能合并俩到三个,而且有限制,求人不如求己,就自己写了参照网上的写了个工具类。

    我们使用的是apache的pdf处理工具类。

    maven:

    <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</artifactId> <version>2.0.15</version> </dependency>

    代码:

    public class PdfUtil { //获取某个目录下的所有文件 private static String[] getFiles(String folder){ File _folder = new File(folder); String[] filesInFolder; if(_folder.isDirectory()){ filesInFolder = _folder.list(); return filesInFolder; } else { filesInFolder = new String[1]; filesInFolder[1] = folder; return filesInFolder; } } //合并pdf, folder 为文件夹,destinationFileName为目标文件 public static void generatePdf(String folder, String destinationFileName) throws Exception{ //pdf合并工具类 PDFMergerUtility mergePdf = new PDFMergerUtility(); String[] filesInFolder = getFiles(folder); for(int i = 0; i < filesInFolder.length; i++){ //循环添加要合并的pdf存放的路径 mergePdf.addSource(folder + File.separator + filesInFolder[i]); } //设置合并生成pdf文件名称 mergePdf.setDestinationFileName(folder + File.separator + destinationFileName); //合并pdf mergePdf.mergeDocuments(); System.out.println("merge success"); } public static void main(String[] args) throws Exception { String folder = "C:\\Users\\14518\\Desktop\\测试"; String destinationFileName = "测试.pdf"; generatePdf(folder,destinationFileName); System.out.println(args); }

    如果文件夹内的内容过多的话,会报 java.lang.OutOfMemoryError: Java heap space ,即堆溢出。

    这时只需要设置启动参数 -Xms256M -Xmx512M  ,如果还报错的话,根据情况调节即可

    最新回复(0)