在 iTextSharp 中,我们可以重写 OnCloseDocument() 事件并在文档页脚添加#total 的页码。但是,PdfDocument 不再有此文档关闭事件。既然我们在添加新页面时无法确定总页数,那么我们如何确定这个总页数并在生成文档时将其放在页脚上呢?
我见过一些使用暴力方法的建议:在生成 PDF 文档之后、刷新之前,使用 PdfReader 读取它以获取总数,然后再更新页脚。这是唯一的方法吗?有更好的方法吗?
谢谢。
这是这样做的方法之一。
此代码示例中描述了另一种方法:
protected void manipulatePdf(String dest) throws Exception {
PdfDocument pdfDoc = new PdfDocument(new PdfReader(SRC), new PdfWriter(dest));
Document doc = new Document(pdfDoc);
int numberOfPages = pdfDoc.getNumberOfPages();
for (int i = 1; i <= numberOfPages; i++) {
// Write aligned text to the specified by parameters point
doc.showTextAligned(new Paragraph(String.format("page %s of %s", i, numberOfPages)),
559, 806, i, TextAlignment.RIGHT, VerticalAlignment.TOP, 0);
}
doc.close();
}
Run Code Online (Sandbox Code Playgroud)
在该代码示例中,您将在创建并刷新 PDF 后添加页脚。这是执行此请求的一种非常简单且容易的方法。
| 归档时间: |
|
| 查看次数: |
10921 次 |
| 最近记录: |