java 在 pdfbox 2.00 中使用 PDFMergerUtility 合并文档

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/35910921/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-11-03 00:44:34  来源:igfitidea点击:

Merge document with PDFMergerUtility in pdfbox 2.00

javamergepdfbox

提问by senthil kumar

Pdfbox Merge Document with 1.8.xx as like mergePdf.mergeDocuments() it working fine .now pdfbox version 2.0.0 contain some argument like org.apache.pdfbox.multipdf.PDFMergerUtility.mergeDocuments(MemoryUsageSetting arg0)what is MemoryUsageSettinghow to use with mergeDocuments.I read as like Merge the list of source documents, saving the result in the destination file.kindly provide some code equivalent to version 2.0.0

用)它工作正常。现在PDFBOX 2.0.0版本1.8.xx像mergePdf.mergeDocuments(PDFBOX合并文档包含像一些论点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)
        {

        }  
    }

回答by Tilman Hausherr

According to the javadoc, MemoryUsageSettingcontrols how memory/temporary files are used for buffering.

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

The two easiest usages are:

两个最简单的用法是:

MemoryUsageSetting.setupMainMemoryOnly()

this sets buffering memory usage to only use main-memory (no temporary file) which is not restricted in size.

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

MemoryUsageSetting.setupTempFileOnly()

this sets buffering memory usage to only use temporary file(s) (no main-memory) which is not restricted in size.

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

So for you, the call would be

所以对你来说,电话是

mergePdf.mergeDocuments(MemoryUsageSetting.setupMainMemoryOnly());

or

或者

mergePdf.mergeDocuments(MemoryUsageSetting.setupTempFileOnly());

Or just pass null. This will default to main memory only. That's also what the javadoctells: memUsageSettingdefines how memory is used for buffering PDF streams; in case of null unrestricted main memory is used.

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