如何在 itext 事件处理程序上获取对发件人的引用



如何在 iTextSharp 事件处理程序 OnStarPage 中获取对象发送器?

class _Events : PdfPageEventHelper
{
    public override void OnStartPage(PdfWriter writer, Document document)
    {
        base.OnStartPage(writer, document);
        Paragraph paragraph = new Paragraph("TITULO DE TODOS LOS REPORTESnn", FontFactory.GetFont("Arial", 9, iTextSharp.text.Font.BOLD));
        paragraph.Alignment = Element.ALIGN_CENTER;
        document.Add(paragraph);
      //I NEED THE OBJECT HERE
     }
}

由于您无法更改方法签名,因此您需要另一种机制来显示哪个页面发送了文档。

一种愚蠢但相当有效的方法是将字典保留在某个共享对象中,该对象将页面映射到文档。

    Dictionary<Page, Document>.

你如何调用代码?

_Events类中创建参数。 将类的名称作为构造函数的参数传递给事件处理程序。

我终于解决了。如果有人需要:

类 _Events : PdfPageEventHelper{

public override void OnStartPage(PdfWriter writer, Document document)
{
    base.OnStartPage(writer, document);
    Paragraph paragraph = new Paragraph("GENERAL TITLEnn", FontFactory.GetFont("Arial", 9, iTextSharp.text.Font.BOLD));
    paragraph.Alignment = Element.ALIGN_CENTER;
    document.Add(paragraph);
    paragraph = new Paragraph(pintaTitulo(), FontFactory.GetFont("Arial", 9, iTextSharp.text.Font.BOLD));
    document.Add(paragraph);
 }

public virtual string pintaTitulo() { return "000"; }

}

然后:

class _EventsInherited : _Events
{
    public _EventsInherited(){}
    public override string pintaTitulo()
    {
        return "subTitle"; 
    }
}

并将文档类绑定到: _EventsInherited

相关内容

  • 没有找到相关文章

最新更新