簡體   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