我使用 onStartPage 事件处理程序编写标题,效果很好,但我需要知道我是否发出了 NewPage() 或它是由于页面溢出而发出的。有没有优雅的说法?提前感谢您的帮助!
问问题
635 次
1 回答
0
您已经编写了一个页面事件实现,并且您已经实现了它的一个或多个方法。您可以像这样创建此事件的实例:
MyPageEvent event = new MyPageEvent();
writer.setPageEvent(event);
每当onStartPage()
调用 时,您都想知道它是从 iText 中调用的,还是使用该newPage()
方法从您的代码中调用的。由于 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
(PS:我是iText的原始开发者。)
于 2013-05-05T07:47:11.140 回答