如何将当前页码和pdf文件中的页面总数作为 页数:3/10
我的代码如下
//PdfPTable saleTable = SaleTable();
FileStream fileStream = new FileStream(Customer + "Invoice.pdf",
FileMode.Create,
FileAccess.Write,
FileShare.None);
Document doc = new Document(PageSize.A4);
PdfWriter writer = PdfWriter.GetInstance(doc, fileStream);
doc.Open();
glue = new Chunk(new VerticalPositionMark());
_phrase1.Add(new Chunk(glue));
_phrase1.Add(new Chunk("Page Number: "));
_para.Add(_phrase1);
doc.Add(_para);
答案 0 :(得分:6)
获取当前页码很简单。您有一个名为PdfWriter
的{{1}}实例。您可以询问该实例的当前页码:
writer
在Java中:
int pageNo = writer.PageNumber
除非您可以展望未来,否则无法获取总页数。当您在第1页时,iText无法知道您将添加多少页面。也许你会立即调用int pageNo = writer.getPageNumber();
方法,在这种情况下总页数是1.也许你打算增加一百页。
有两种方法可以解决此问题。
#1:分两次创建PDF
首先在没有页码的内存中创建PDF。之后,您使用Close()
添加页码。这在以下Q& A项目和示例中进行了解释:
#2:使用占位符表示总页数
您可以创建PdfStamper
作为总页数的占位符。然后,在您PdfTemplate
文档之前,您可以填写该占位符的总页数。
此前也曾多次解释过:
请在发帖前浏览official documentation。