飞碟pdf + itextpdf:如何将文本附加到现有pdf文件的最后一页?

时间:2015-04-13 09:05:45

标签: java pdf flying-saucer itextpdf

我必须从知识库导出数千个html页面到pdf文件。我正在使用飞碟库(因为它知道如何正确渲染html + css),它使用了引擎盖下的itextpdf进行pdf操作。

问题是,对于大量的html文档,我们的服务器因OOM错误而失败。这是因为飞碟在创建pdf之前呈现内容,这是非常昂贵的操作。

我将导出页面拆分为"存储桶",然后将它们附加到结果文件中(如建议的here)。但问题是每个新的"桶"即使前一个存储桶的最后一页有足够的空间,也会从新页面开始。

所以不要这样:

Page
---------------------------
| last row of N-1th bucket|
| first row of Nth bucket |
|.........................|
|_________________________|

我有这个:

Page
---------------------------
| last row of N-1th bucket|
|                         |
|                         |
|_________________________|

Page
---------------------------
| first row of Nth bucket |
|.........................|
|.........................|
|_________________________|

我找到了相关的帖子 - ITextSharp - merge two pdfs in a single page,但也许有一种方法可以在pfd创建过程中将内容添加到最后一页?

非常感谢任何帮助。我也尝试在http://itextpdf.com/sandbox上找到一些相关的例子,但没有任何运气。

提前谢谢

1 个答案:

答案 0 :(得分:0)

我为我的案子解决了问题,所以如果有人有兴趣,请发布答案。

问题通过"调整"飞碟图书馆 - pull request with my changes。另一个积极的副作用是传递文档侦听器允许跟踪实际的页面呈现进度,这对于长时间运行的进程的可视化可能是有用的。