我使用itext 2.1.7和java servlets创建PDF文件,我通过覆盖PdfpageEvents来插入页眉和页脚onEndPage
和onCloseDocument
我成功能够将页面X的Y放在页眉/页脚中显示只在第一页使用itext生成的PDF页面数
现在我想计算页面的成本(即打印成本)。所以为此我需要找到不。的页面(即假设打印一页的费用为3我需要计算整个pdf的金额(3 *页面总数pdf)),捕获量为我还需要显示第一页,只在同一pdf的第一页。
我试着打印出来的onCloseDocument
但印在每一个网页
我怎样才能得到这个工作的成本是有什么,我做错了什么?创建PDF文件
Document document = new Document(PageSize.A4, 20, 20, 20, 50);
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(request.getRealPath("/") +"NoticeReports/"+filename+".pdf"));
MyPageEvents events = new MyPageEvents();
writer.setPageEvent(events);
document.open();
/*
* put some content in the pdf
*
*/
document.close();
我引用它具有以下方法MyPageEvents类的Servlet文件的
下面的代码:
int costofpage=3;
// we override the onEndPage method
public void onEndPage(PdfWriter writer, Document document) {
int pageN = writer.getPageNumber();
String text = "Page " + pageN + " of ";
float len = bf.getWidthPoint(text, 8);
cb.beginText();
cb.setFontAndSize(bf, 8);
cb.setTextMatrix(280, 20);
cb.showText(text);
cb.endText();
cb.moveTo(0, 30);
cb.lineTo(600, 30);
cb.moveTo(0, 820);
cb.lineTo(600, 820);
cb.stroke();
cb.addTemplate(template, 280 + len, 20);
}
// we override the onCloseDocument method
public void onCloseDocument(PdfWriter writer, Document document) {
template.beginText();
template.setFontAndSize(bf, 8);
template.showText(String.valueOf(writer.getPageNumber() - 1));
template.endText();
}
我应该怎么做才能(总没有页* costofpage)在pdf的第一页?我应该在哪里放置代码来实现这一目标?
是啊!那肯定比Shamit的答案要高效得多!我真的很期待你在这篇文章上的回复(标记为'itext')......反正迟到比从未...多谢...... – 2011-04-02 05:06:08