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
Merge document with PDFMergerUtility in pdfbox 2.00
提问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, MemoryUsageSetting
controls how memory/temporary files are used for buffering.
根据javadoc,MemoryUsageSetting
控制如何使用内存/临时文件进行缓冲。
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: memUsageSetting
defines how memory is used for buffering PDF streams; in case of null unrestricted main memory is used.
或者只是传递null。这将默认为仅主内存。这也是javadoc所说的:memUsageSetting
定义如何使用内存来缓冲 PDF 流;在 null 的情况下使用不受限制的主内存。