在pdfbox 2.00中将文档与PDFMergerUtility合并

时间:2016-03-10 08:14:05

标签: java merge pdfbox

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)
        {

        }  
    }

1 个答案:

答案 0 :(得分:8)

根据javadocMemoryUsageSetting控制内存/临时文件如何用于缓冲。

两个最简单的用法是:

MemoryUsageSetting.setupMainMemoryOnly()

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

MemoryUsageSetting.setupTempFileOnly()

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

所以对你而言,电话会是

mergePdf.mergeDocuments(MemoryUsageSetting.setupMainMemoryOnly());

mergePdf.mergeDocuments(MemoryUsageSetting.setupTempFileOnly());

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