最近做了个目录加子页面的pdf,子页面的页码不固定,是动态的 ,目录页面调用一个方法来生成子页面
如何在目录中显示页码呢?我们来看看
//以下是目录页关键代码
先在调用子页面的目录中创建几个对象
MemoryStream ms = new MemoryStream();//流
PdfWriter writer = PdfWriter.GetInstance(doc, ms);
writer.CloseStream = false;
List<PdfTemplate> template = new List<PdfTemplate>();//模板对象数组
//以下创建一个模板对象事例,
PdfTemplate temp =writer.DirectContent.CreateTemplate(100, 100);
temp.BoundingBox = (new Rectangle(-20, -20, 100, 100));
template.Add(temp);
PdfContentByte cb = writer.DirectContent;
cb.SetLineWidth(0);
cb.BeginText();
cb.SetFontAndSize(bfChinese, 12);
cb.SaveState();
cb.AddTemplate(temp, 390, 676-i*20);//在指定位置添加模板,要在哪些位置显示页码就在哪添加模板
cb.SaveState();
cb.EndText();
//
//以下是子页面关键代码
if (tpl != null)//tpl是目录页传给子页面的PdfTemplate对象
{
tpl.BeginText();
tpl.SetFontAndSize(table_font.BaseFont, 10);
tpl.SetTextMatrix(0, 0);
tpl.ShowText("" + writer.PageNumber + "");
tpl.EndText();
}