我正在尝试使用itextsharp生成pdf.i必须向pdf header添加一些动态数据。我可以在onpagestart事件中执行此操作。
答案 0 :(得分:2)
您始终可以在自己的IPdfPageEvent接口实现中声明您的变量。然后,您可以在IPdfPageEvent实现之外的任何位置设置该变量的值。
说
writer.PageEvent.variable = "Some value";
使用OnStartPage事件,您可以执行以下操作:
public class MyPageEvent:IPdfPageEvent
{
public string variable="";
public void OnStartPage(PdfWriter writer, Document document)
{
PdfContentByte cb = riter.DirectContent;;
cb.BeginText();
cb.SetFontAndSize(myBaseFont, 10f);
cb.SetTextMatrix(600, 15);
cb.ShowText(this.variable);
cb.EndText();
}
......
}
答案 1 :(得分:1)
不确定您是否还需要答案,但我目前正在做的是将我的pdfwriter.pageevent对象转换为显式子类,然后在该子类中设置公共属性。
在生成PDF的类中:
CType(pdfWriter.PageEvent, PDFDocEventHelper).currentValue = value
和子类PdfPageEventHelper类:
Public Class PDFDocEventHelper
Inherits PdfPageEventHelper
Public Property currentValue as String
.
.
.
End Class
有意义吗?我并不喜欢使用CType(),但似乎确实有效。