在 pdfbox 2.00 中使用 PDFMergerUtility 合并文档

Merge document with PDFMergerUtility in pdfbox 2.00

PDFbox Merge Document with 1.8.xx 就像 mergePdf.mergeDocuments() 它工作正常。现在 pdfbox 版本 2.0.0 包含一些参数,比如 org.apache.pdfbox.multipdf.PDFMergerUtility.mergeDocuments(MemoryUsageSetting arg0) 什么是 MemoryUsageSetting 如何与 mergeDocuments.I 一起使用 合并源文件列表,将结果保存在目标文件中。请提供一些相当于 2.0.0 版的代码

public void combine()
    {
        try
        {
        PDFMergerUtility mergePdf = new PDFMergerUtility();
        String folder ="pdf";
        File _folder = new File(folder);
        File[] filesInFolder;
        filesInFolder = _folder.listFiles();
        for (File string : filesInFolder)
        {
            mergePdf.addSource(string);    
        }
    mergePdf.setDestinationFileName("Combined.pdf");
    mergePdf.mergeDocuments();
        }
        catch(Exception e)
        {

        }  
    }

根据 javadocMemoryUsageSetting 控制 memory/temporary 文件用于缓冲的方式。

最简单的两种用法是:

MemoryUsageSetting.setupMainMemoryOnly()

这将缓冲内存使用设置为仅使用大小不受限制的主内存(无临时文件)。

MemoryUsageSetting.setupTempFileOnly()

这将缓冲内存使用设置为仅使用大小不受限制的临时文件(无主内存)。

所以对你来说,电话是

mergePdf.mergeDocuments(MemoryUsageSetting.setupMainMemoryOnly());

mergePdf.mergeDocuments(MemoryUsageSetting.setupTempFileOnly());

或者直接传null。这将默认为仅主内存。这也是 javadoc 告诉我们的:memUsageSetting 定义了如何使用内存来缓冲 PDF 流;如果为空,则使用不受限制的主内存。