我正在用iTextSharp做一个pdf文档。我使用PageEvent事件创建了标题,但我希望我的标题在某些页面中有所不同。 它适用于为所有页面设置相同的标题。
但是,我希望有不同的东西。
示例:Page 1 =>标题1 Page 2 =>标题1 Page 3 =>标题2 Page 4 =>标题2
我会解决它,但发生这种情况时会遇到麻烦:
(t1 => t1.name == "test_name")
当我把它放在writer.PageEvent=new PDFFooter(params);
doc.Open();
以上时,必须创建PageEvent事件,它会产生错误。我在Visual Studio Community 2013中使用C#。
我该如何解决这个问题?谢谢!
答案 0 :(得分:0)
我现在解决了这个问题。
解决方案是:
PDFFooter events=new PDFFooter();
PdfWriter writer = PdfWriter.GetInstance(doc, Response.OutputStream);
doc.Open();
foreach (var item in ListReporte)
{
events = new PDFFooter();
writer.PageEvent = events;
events.Ciudad = item.Ciudad;
events.OnStartPage(writer,doc);
//This was the solution
if (writer.PageEvent != null)
writer.PageEvent = null;
}
在每次迭代中,我将null赋给PageEvent属性。
但首先,我创建了一个PDFFooter对象(类PDFFooter包含OnStartPage和OnEndPages事件...),因此,在该类中,我声明了一些关于我想要显示的数据的属性。
以前,我无法在doc.Open()
下面实例化PDFFooter类。代码是这样的:
writer.PageEvent=new PDFFooter();
doc.Open():
所以,我首先尝试创建objet,然后将其设置为writer对象的PageEvent属性(我建议这样做)。它奏效了。
感觉很棒。