【问题标题】:how to add the current page number and total number of pages in Itextsharp [duplicate]如何在Itextsharp中添加当前页码和总页数[重复]
【发布时间】:2016-08-14 04:08:16
【问题描述】:

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);

【问题讨论】:

    标签: itextsharp


    【解决方案1】:

    获取当前页码很容易。您有一个名为 writerPdfWriter 实例。您可以向该实例询问当前页码:

    int pageNo = writer.PageNumber
    

    在 Java 中:

    int pageNo = writer.getPageNumber();
    

    除非您可以展望未来,否则无法获得总页数。当您在第 1 页时,iText 无法知道您将添加多少页。也许你会立即调用Close() 方法,在这种情况下,总页数为 1。也许你正计划添加一百页。

    有两种方法可以解决这个问题。

    #1:分两次创建 PDF

    您首先在内存中创建 PDF 页码。之后,您使用PdfStamper 添加页码。这在以下问答项目和示例中进行了解释:

    #2:使用占位符表示总页数

    您可以创建一个PdfTemplate 作为页面总数的占位符。然后,在您 Close() 文档之前,您可以填写该占位符上的总页数。

    这个之前也解释过很多次了:

    请在发布问题之前浏览official documentation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多