在pdfbox 2.00中将文档与PDFMergerUtility合并

sen*_*mar 8 java merge pdfbox

Pdfbox Merge Document与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)
        {

        }  
    }
Run Code Online (Sandbox Code Playgroud)

Til*_*err 14

根据javadoc,MemoryUsageSetting控制内存/临时文件如何用于缓冲.

两个最简单的用法是:

MemoryUsageSetting.setupMainMemoryOnly()
Run Code Online (Sandbox Code Playgroud)

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

MemoryUsageSetting.setupTempFileOnly()
Run Code Online (Sandbox Code Playgroud)

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

所以对你来说,电话会是

mergePdf.mergeDocuments(MemoryUsageSetting.setupMainMemoryOnly());
Run Code Online (Sandbox Code Playgroud)

要么

mergePdf.mergeDocuments(MemoryUsageSetting.setupTempFileOnly());
Run Code Online (Sandbox Code Playgroud)

或者只是传递null.这将默认为仅主内存.这也是javadoc所说的:memUsageSetting定义内存如何用于缓冲PDF流; 在使用null的情况下,使用无限制的主存储器.