在分页符的itext中处理页面事件

时间:2014-12-24 10:06:24

标签: itext

我正在使用itext生成pdf,并想知道元素超出页面大小时幕后发生的事情。

我正在使用PdfPageEventHelper来了解在这种情况下是否添加了新页面。

结果pdf显示了一个新页面,但没有触发我的onStartPage,onEndPage等事件的函数。

1 个答案:

答案 0 :(得分:0)

我正在使用PdfPageEventHelper,我没有遇到任何问题。触发新页面时,在初始化新页面之前,onEndPage()方法称为新页面后,onStartPage()方法称为页面已初始化。

您可以在代码中触发新页面,如下所示:

document.newPage();

或者可以隐式触发newPage()方法,例如当您使用超出页面大小的document.add()添加内容时。

您无法验证未触发onEndPage()onStartPage()等功能的指控。恰恰相反:我们有很多例子可以证明,其中一些例子已经捆绑在书中The Best iText Questions on StackOverflow.

在评论中,您说您对NEWPAGENEXTPAGE之间的差异有疑问。这是一个非常奇怪的问题,因为我不知道你为什么需要这些物品。

Chunk.NEXTPAGE是iText内部使用的特殊Chunk。它可以用于通过添加对象来调用newPage()方法。

例如:

document.add(Chunk.NEXTPAGE);

相当于:

document.newPage();

后一种方法是触发新页面的首选方法,NEXTPAGE对象在非常具体的用例中内部使用。

至于Chunk.NEWPAGE,那只是String(它的值是"NEWPAGE")。此String是用于标识NEXTPAGE块的属性键。

这属于iText的内部厨房。作为iText用户,您不必担心它。