我使用onStartPage事件处理程序来编写标题,效果很好,但我需要知道我是否发布了一个NewPage(),或者是由于页面溢出而发出的。有一种优雅的方式来讲述吗? 在此先感谢您的帮助!
答案 0 :(得分:0)
您已经编写了一个页面事件实现,并且您已经实现了一个或多个方法。您可以像这样创建此事件的实例:
MyPageEvent event = new MyPageEvent();
writer.setPageEvent(event);
每当调用onStartPage()
时,您想知道它是使用newPage()
方法从iText内部还是从您的代码中调用的。由于iText在内部使用相同的newPage()
方法,因此您必须使用技巧。
将memberVariable添加到您的页面事件应用程序中。类似的东西:
protected boolean myNewPage = false;
现在将此方法添加到您的活动中:
public void newPage(Document document) {
myNewPage = true;
document.newPage();
myNewPage = false;
}
现在,只要您想触发新页面,请不要使用:
document.newPage();
请改用:
event.newPage(document);
对于每个初始化的新网页,我们会在内部调用onStartPage()
方法,此时,只要myNewPage
为true
,newPage()
的值就会为false
由你自己引发;否则它将是{{1}}。
我希望这有帮助;我没有测试它,我只是告诉你我会尝试什么。
(PS:我是iText的原始开发者。)