iTextSharp隐式显式NewPage之间的区别

时间:2013-05-04 13:17:38

标签: itextsharp

我使用onStartPage事件处理程序来编写标题,效果很好,但我需要知道我是否发布了一个NewPage(),或者是由于页面溢出而发出的。有一种优雅的方式来讲述吗? 在此先感谢您的帮助!

1 个答案:

答案 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()方法,此时,只要myNewPagetruenewPage()的值就会为false由你自己引发;否则它将是{{1}}。 我希望这有帮助;我没有测试它,我只是告诉你我会尝试什么。

(PS:我是iText的原始开发者。)