gpt4 book ai didi

c# - 将参数传递给重写的 OnEndPage 方法

转载 作者:行者123 更新时间:2023-11-30 13:26:24 25 4
gpt4 key购买 nike

我需要将一个参数传递给“OnEndPage”方法的覆盖版本,当我声明该参数时我没有收到任何错误,但是当我调用该方法时它告诉我“无法将 void 隐式转换为 itextsharp。文本.pdf.ipdfpageevent"

这是我的 OnEndPage 方法:

  public class pdfPage : iTextSharp.text.pdf.PdfPageEventHelper
{
public override void OnEndPage(PdfWriter writer, Document doc, int parametro)
{
PdfPTable headerTbl = new PdfPTable(1);

headerTbl.TotalWidth = doc.PageSize.Width;

Image logo = Image.GetInstance("logo.png");

logo.ScalePercent(42);

PdfPCell cell = new PdfPCell(logo);

cell.HorizontalAlignment = Element.ALIGN_LEFT;

cell.PaddingRight = 52;

cell.Border = 0;

headerTbl.AddCell(cell);

headerTbl.WriteSelectedRows(0, -1, 0, (doc.PageSize.Height - 10), writer.DirectContent);

PdfPTable headerrow = new PdfPTable(7);
headerrow.TotalWidth = 570f;
headerrow.LockedWidth = true;
headerrow.AddCell(new Phrase("TIPO DOCUMENTO", new Font(Font.FontFamily.HELVETICA, 6f)));

headerrow.WriteSelectedRows(0, -1, 0, (doc.PageSize.Height - 50), writer.DirectContent);
}
}

我是这样调用它的:

 var doc = new Document(PageSize.A4, 10, 10, 170, 10);
pdfPage page = new pdfPage();
PdfWriter pdfWriter = PdfWriter.GetInstance(doc, new FileStream( "test.pdf", FileMode.Create));
pdfWriter.PageEvent = page.OnEndPage(pdfWriter, doc, 1234);

最佳答案

为了进一步补充 Bruno 所说的内容,如果您想向 PdfPageEventHelper 添加其他信息,您只需添加其他属性即可:

public class pdfPage : iTextSharp.text.pdf.PdfPageEventHelper
{
public int parametro { get; set; }
public override void OnEndPage(PdfWriter writer, Document doc)
{
//...
}
}

然后:

var page = new pdfPage();
page.parametro = 40;
pdfWriter.PageEvent = page;

或者只是:

pdfWriter.PageEvent = new pdfPage() { parametro = 40 };

如果你想改变这个有效的“每页”,你将需要将你的逻辑移到这个类而不是调用主体中。

关于c# - 将参数传递给重写的 OnEndPage 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24673110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com