使用带Java的itext api获取pdf中的额外页数
我对PDF中的页面计数有问题 假设我们有一个页面数为3的pdf,但在页脚中返回“第1页,共4页”。我们将从Eventer课程中获得4分 Jar:com.lowagie.text-2.1.7.Jar Eventer类:PdfPageEventHelper.java使用带Java的itext api获取pdf中的额外页数,java,pdf,itext,Java,Pdf,Itext,我对PDF中的页面计数有问题 假设我们有一个页面数为3的pdf,但在页脚中返回“第1页,共4页”。我们将从Eventer课程中获得4分 Jar:com.lowagie.text-2.1.7.Jar Eventer类:PdfPageEventHelper.java 请阅读官方文档,您会发现您参考的非官方网站上的示例是错误的 在我的书《iText在行动——第二版》的第5章中,你会发现这个例子。如您所见,我们在onCloseDocument()方法中使用writer.getPageNumber()-1
请阅读官方文档,您会发现您参考的非官方网站上的示例是错误的 在我的书《iText在行动——第二版》的第5章中,你会发现这个例子。如您所见,我们在
onCloseDocument()
方法中使用writer.getPageNumber()-1
public void onCloseDocument(PdfWriter writer, Document document) {
ColumnText.showTextAligned(total, Element.ALIGN_LEFT,
new Phrase(String.valueOf(writer.getPageNumber() - 1)),
2, 2, 0);
}
原因在本书第152页的注释中解释:
注意关闭文档时,将触发newPage()
方法
在当前页面上执行finilization。调用newPage()
时,页面
数字是扩充的,所以您需要使用(writer.getPageNumber()-1)
您想在onCloseDocument()
方法中添加总页数
public void onCloseDocument(PdfWriter writer, Document document) {
ColumnText.showTextAligned(total, Element.ALIGN_LEFT,
new Phrase(String.valueOf(writer.getPageNumber() - 1)),
2, 2, 0);
}
如果需要其他示例,请查看官方网站上的示例。iText 2.1.7不再受支持。这些版本从2009年开始,您不应该再使用它。如果您需要参数来说服项目经理升级到更新版本的iText或iTextSharp,请阅读。此外:
PdfPageEventHelper
是PdfPageEvents
接口的实现,该接口只包含空方法。因此,您声称“Eventer”类是PdfPageEventHelper
是错误的。这意味着没有人知道您所说的Eventer
class是什么意思。没有这样的事情。即使我用了最新的版本也会得到同样的问题。请检查上的剪贴代码是否有任何原因使您更喜欢非官方网站上的(错误)示例而不是官方网站上的(正确)示例?