繁体   English   中英

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

[英]How to get reference to the sender on itext event handler

如何在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 REPORTES\n\n", 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类中创建一个参数。 将类的名称作为构造函数的参数传递给事件处理程序。

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

class _Events:PdfPageEventHelper {

public override void OnStartPage(PdfWriter writer, Document document)
{
    base.OnStartPage(writer, document);
    Paragraph paragraph = new Paragraph("GENERAL TITLE\n\n", 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);
 }

公共虚拟字符串pintaTitulo(){返回“ 000”; }

}

接着:

class _EventsInherited : _Events
{
    public _EventsInherited(){}

    public override string pintaTitulo()
    {
        return "subTitle"; 
    }
}

并将文档类预订为:_EventsInherited

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM