如何在Itextsharp中添加当前页码和总页数

时间:2016-04-21 06:34:01

标签: itextsharp

如何将当前页码和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);

1 个答案:

答案 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