如何将当前页码和pdf文件中的页面总页数设置为Page: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);
Run Code Online (Sandbox Code Playgroud)
获取当前页码很容易.你有一个PdfWriter名为的实例writer.您可以向该实例询问当前页码:
int pageNo = writer.PageNumber
Run Code Online (Sandbox Code Playgroud)
在Java中:
int pageNo = writer.getPageNumber();
Run Code Online (Sandbox Code Playgroud)
除非您可以展望未来,否则无法获得总页数.当您在第1页时,iText无法知道您将添加多少页面.也许你会Close()立即调用这个方法,在这种情况下,总页数是1.也许你打算增加一百页.
有两种方法可以解决此问题.
#1:两遍创建PDF
首先在内存中创建没有页码的PDF .之后,您将使用PdfStamper添加页码.这可以在以下问答项目和示例中解释:
#2:使用占位符表示总页数
您可以创建一个PdfTemplate占总页数的占位符.然后,就在您Close()的文档之前,您可以填写该占位符的总页数.
这也曾多次解释过:
请在发布问题之前浏览官方文档.
| 归档时间: |
|
| 查看次数: |
14381 次 |
| 最近记录: |