如何使用itextsharp将动态数据添加到pdf标头

时间:2011-08-09 11:27:03

标签: c# itextsharp

我正在尝试使用itextsharp生成pdf.i必须向pdf header添加一些动态数据。我可以在onpagestart事件中执行此操作。

2 个答案:

答案 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(),但似乎确实有效。