Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 正在尝试在pdfbox 2.00中使用PDFMergerUtility合并文档_Java_Pdfbox - Fatal编程技术网

Java 正在尝试在pdfbox 2.00中使用PDFMergerUtility合并文档

Java 正在尝试在pdfbox 2.00中使用PDFMergerUtility合并文档,java,pdfbox,Java,Pdfbox,我们有一份10页的PDF文档。我们需要重新安排页面并将其拆分为3或4个文档。我们在1.8.xx版本中使用Pdfbox Merge Document,就像mergePdf.mergeDocuments()一样。它工作正常。现在Pdfbox版本2.0.0在将10页合并为3个单独的文档后,顺序出现错误。我尝试了setuptemp和setupmain。两者都没有提供任何积极的投入 Pdfbox 1.8代码示例: PDDocument document = PDDocument.load(new File

我们有一份10页的PDF文档。我们需要重新安排页面并将其拆分为3或4个文档。我们在1.8.xx版本中使用Pdfbox Merge Document,就像mergePdf.mergeDocuments()一样。它工作正常。现在Pdfbox版本2.0.0在将10页合并为3个单独的文档后,顺序出现错误。我尝试了setuptemp和setupmain。两者都没有提供任何积极的投入

Pdfbox 1.8代码示例:

PDDocument document = PDDocument.load(new File(sourceFile));
PDFMergerUtility PDFmerger = new PDFMergerUtility();
Splitter splitter = new Splitter();
splitter.setStartPage(fDStartPage);
splitter.setSplitAtPage((fDEndPage));
List<PDDocument> splittedDocuments = splitter.split(document);
PDFmerger.addSource(getInputStream(splittedDocuments.get(0)));
PDFmerger.setDestinationFileName(destinationFile);
PDFmerger.mergeDocuments();
PDFMergerUtility pdfmerger = new PDFMergerUtility();
PDDocument document = PDDocument.load(new File(filename));
pdfmerger.setDestinationFileName(mergedFileName);
Splitter splitter = new Splitter();
splitter.setStartPage(9);
splitter.setSplitAtPage(10);
List<PDDocument> document1 splitter.split(document);
InputStream is = null;
ByteArrayOutputStream out = new ByteArrayOutputStream();
document1.get(0).save(out);
byte[] data = out.toByteArray();
is = new ByteArrayInputStream(data);
pdfmerger.addSource(is);
pdfmerger.mergeDocuments(MemoryUsageSetting.setupMainMemoryOnly());
document.close();
PDDocument document=PDDocument.load(新文件(sourceFile));
PDFMergerUtility PDFmerger=新的PDFMergerUtility();
拆分器拆分器=新拆分器();
拆分器。设置起始页(fDStartPage);
拆分器。设置拆分页((fDEndPage));
List splittedDocuments=splitter.split(文档);
PDFmerger.addSource(getInputStream(splittedDocuments.get(0));
PDFmerger.setDestinationFileName(destinationFile);
PDFmerger.mergeDocuments();
PDFbox 2.0代码示例:

PDDocument document = PDDocument.load(new File(sourceFile));
PDFMergerUtility PDFmerger = new PDFMergerUtility();
Splitter splitter = new Splitter();
splitter.setStartPage(fDStartPage);
splitter.setSplitAtPage((fDEndPage));
List<PDDocument> splittedDocuments = splitter.split(document);
PDFmerger.addSource(getInputStream(splittedDocuments.get(0)));
PDFmerger.setDestinationFileName(destinationFile);
PDFmerger.mergeDocuments();
PDFMergerUtility pdfmerger = new PDFMergerUtility();
PDDocument document = PDDocument.load(new File(filename));
pdfmerger.setDestinationFileName(mergedFileName);
Splitter splitter = new Splitter();
splitter.setStartPage(9);
splitter.setSplitAtPage(10);
List<PDDocument> document1 splitter.split(document);
InputStream is = null;
ByteArrayOutputStream out = new ByteArrayOutputStream();
document1.get(0).save(out);
byte[] data = out.toByteArray();
is = new ByteArrayInputStream(data);
pdfmerger.addSource(is);
pdfmerger.mergeDocuments(MemoryUsageSetting.setupMainMemoryOnly());
document.close();
PDFMergerUtility pdfmerger=new PDFMergerUtility();
PDDocument document=PDDocument.load(新文件(文件名));
pdfmerger.setDestinationFileName(合并FileName);
拆分器拆分器=新拆分器();
拆分器。设置开始页(9);
拆分器。设置拆分器第(10)页;
列表文档1拆分器。拆分(文档);
InputStream=null;
ByteArrayOutputStream out=新建ByteArrayOutputStream();
document1.get(0)、save(out);
字节[]数据=out.toByteArray();
is=新的ByteArrayInputStream(数据);
pdfmerger.addSource(is);
pdfmerger.mergeDocuments(MemoryUsageSetting.setupMainMemoryOnly());
document.close();

getInputStream的作用是什么?代码段显示的是一个代码还是您尝试的两个备选方案?你能分享这份PDF文件并解释一下你的期望和发生的事情吗?fDStartPage和fDEndPage的值是多少?代码段有两个不同的代码示例,第一个在PDFbox 1.8中尝试。它工作正常,第二个在PDFbox2.0中尝试。它有上述问题。我尝试了第二个代码,它生成了一个包含2页的文件,即原始的第9页和第10页,这是我所期望的(阅读拆分器方法的javadoc)。作为源文件,我使用了正好有10页的文件。顺便说一句,我不明白合并的目的是什么,它什么也不做,即它合并了1个文档。我不明白当您只保存一个文件,并在有10页的源文件的第9页开始拆分时,您如何将其拆分为3部分。