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);
获取当前页码很容易。你有一个PdfWriter
实例名为writer
。您可以向该实例询问当前页码:
int pageNo = writer.PageNumber
In Java:
int pageNo = writer.getPageNumber();
除非您能够展望未来,否则不可能获得总页数。当您位于第 1 页时,iText 无法知道您将添加多少页。也许你会调用Close()
方法立即,在这种情况下,总页数是 1。也许您打算添加一百页。
有两种方法可以解决此问题。
#1:分两遍创建 PDF
您首先在内存中创建 PDFwithout页码。之后,您使用PdfStamper
添加页码。这在以下问答项目和示例中进行了解释:
- 例子:向现有 PDF 添加页码 (Java)
- 例子:双通道(爪哇)/双通道 (C#)
-
iText - 将内容添加到现有页面的底部(StackOverflow 问答)
-
iText Java - 向现有 pdf 添加标题(StackOverflow 问答)
-
使用 iTextSharp 创建 PDF 时输入页码(StackOverflow 问答)
- ...
#2:使用占位符表示总页数
您可以创建一个PdfTemplate
作为总页数的占位符。然后,就在你面前Close()
文档中,您可以在该占位符上填写总页数。
这一点之前也已经解释过很多次了:
- 例子:电影国家1(爪哇)/电影国家1 (C#)
- 问答部分:页面事件
-
使用 iTextSharp 创建 PDF 时输入页码(StackOverflow 问答)
-
第 X 页(共 Y 期)(StackOverflow 问答)
- ...
请浏览官方文档在发布问题之前。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)