使用PDFBox添加页面不起作用

达克雷

我正在尝试将页面添加到现有的PDF文档中,该页面应该在应该添加页面之前和之后执行多种不同的操作。

目前,我在文档的开头打开页面,并在文档的第一页和第二页上写东西。在第二页上,我还添加了一些图像。PDF上写的Stuff随PDF的不同而不同,有时太多的东西使两页(有时甚至三页)不够用。现在,一旦第二页上有一定数量的文字/打印图像,我将尝试添加第三页甚至第四页。

无论如何,我要添加的第三页都不会显示在最终文档中。这是我添加页面的代码:

if(doc.getNumberOfPages() < p+1){
    PDDocument emptyDoc = PDDocument.load("./data/EmptyPage.pdf");
    PDPage emptyPage = (PDPage)emptyDoc.getDocumentCatalog().getAllPages().get(0);
    doc.addPage(emptyPage);;
    emptyDoc.close();
}

当我之前检查doc.getNumberOfPages()时,它说2。然后它说3。最终文档仍然只有2页。if子句之后的代码包含多个contentStream,这些contentStream应该在新页面(以及第一和第二页面)上写文本。

 contentStream = new PDPageContentStream(doc, (PDPage) allPages.get((int)p), true, true);

最后,我通过保存文件

doc.save(tarFolder+nr.get(i)+".pdf");
doc.close();

我用一个类应该创建完全相同的项目创建了一个全新的项目-将页面添加到另一个PDF中。这段代码运行良好,并且显示了第三页-看来我只是缺少了一些东西。我的代码在第1 + 2页上工作得很好,我们刚刚有了新的案例,有时我们有时需要第三/第四页,因此我想将其集成到我的主项目中。

这是有效的新项目:

PDDocument doc = PDDocument.load("D:\\test.pdf");
PDDocument doc2 = PDDocument.load("D:\\EmptyPage.pdf");

List<PDPage> allPages = doc2.getDocumentCatalog().getAllPages();
PDPage page = (PDPage) allPages.get(pageNumber);

doc.addPage(page); 
doc.save("D:\\testoutput.pdf");

在我的主项目中,很奇怪的是,我添加的第三页被计算在内

"getNumberOfPages()"

但不会出现在最终产品中。如果我不添加页面,该程序将引发错误,因为它试图在第三页上写入内容。

知道我在做什么错吗?

提前致谢!

编辑:

如果我在开始时添加页面,则在第一次加载文档时,该页面将被添加并存在于我的最终文档中,如下所示:

doc = PDDocument.load(config.getFolder("template"));
PDDocument emptyDoc = PDDocument.load("./data/EmptyPage.pdf");
PDPage emptyPage = (PDPage)emptyDoc.getDocumentCatalog().getAllPages().get(0);
doc.addPage(emptyPage);

但是,由于某些文档不需要额外的页面,因此页面不必要地变得复杂-而且我觉得如果不需要页面,删除页面并不是很漂亮,因为我想避免一开始就添加它。也许有人现在有一个主意?

达克雷

感谢蒂尔曼·豪舍(Tilman Hausherr),我找到了答案。

如果我移动

emptyDoc.close()

到我的代码末尾,紧接在:

doc.save(tarFolder+nr.get(i)+".pdf");
doc.close();

该页面显示在最终文档中,没有任何问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用jQuery滚动页面不起作用

来自分类Dev

jQuery Mobile向页面添加按钮不起作用

来自分类Dev

Javascript iframe src页面添加动态输入不起作用

来自分类Dev

jQuery Mobile向页面添加按钮不起作用

来自分类Dev

PDFBox 设置字段值不起作用

来自分类Dev

页面网址不起作用

来自分类Dev

页面网址不起作用

来自分类Dev

活动页面不起作用

来自分类Dev

在Jekyll页面中使用Liquid标签不起作用

来自分类Dev

jQuery插件在页面中多次使用时不起作用

来自分类Dev

使用bookmarklet注入jQuery在页面上不起作用

来自分类Dev

使用Ajax加载页面时,“返回”按钮不起作用

来自分类Dev

在动态页面上使用PHP while循环不起作用

来自分类Dev

使用JQuery的子页面中的图像预览不起作用?

来自分类Dev

使用localstorage保持页面上的html刷新不起作用

来自分类Dev

在页面上使用边距顶部链接不起作用

来自分类Dev

商店添加-不起作用

来自分类Dev

Crontab添加不起作用

来自分类Dev

片段添加不起作用

来自分类Dev

jQuery脚本添加ID并使用它不起作用

来自分类Dev

使用matplotlib在图例上添加标签不起作用

来自分类Dev

使用jQuery添加多个输入不起作用

来自分类Dev

使用ajax添加按钮时,操作不起作用

来自分类Dev

使用jQuery添加和删除div不起作用

来自分类Dev

使用jQuery添加事件处理程序不起作用

来自分类Dev

使用 AddFontResourceEx 添加的字体在 GDI+ 中不起作用

来自分类Dev

使用实体框架添加控制器不起作用?

来自分类Dev

PDFBOX JPG图像有效,但PNG不起作用

来自分类Dev

Java + PDFBox在Linux服务器上不起作用