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)
{
}
}
答案 0 :(得分:8)
根据javadoc,MemoryUsageSetting
控制内存/临时文件如何用于缓冲。
两个最简单的用法是:
MemoryUsageSetting.setupMainMemoryOnly()
这会将缓冲内存使用量设置为仅使用不受大小限制的主内存(无临时文件)。
MemoryUsageSetting.setupTempFileOnly()
这将缓冲内存使用设置为仅使用不受大小限制的临时文件(无主内存)。
所以对你而言,电话会是
mergePdf.mergeDocuments(MemoryUsageSetting.setupMainMemoryOnly());
或
mergePdf.mergeDocuments(MemoryUsageSetting.setupTempFileOnly());
或者只是传递null。这将默认为仅主内存。这也是javadoc所说的:memUsageSetting
定义了如何使用内存来缓冲PDF流;在使用null的情况下,使用无限制的主存储器。