C# OnStartPage CurrentPageNumber错误

C# OnStartPage CurrentPageNumber错误,c#,itext,C#,Itext,我刚刚使用ITextSharp,我正在尝试使用PdfPageEventHelper的OnStartPage事件方法来创建一个简单的内容表 一切都差不多完成了,唯一的问题是对OnStartPage的第一次调用PdfWriterCurrentPageNumber是错误的,它应该是1,但是是2,然后,在所有其他调用中,CurrentPageNumber在它应该是的页面中 这是我的密码 public class MyPdfEventHandler: PdfPageEventHelper {

我刚刚使用ITextSharp,我正在尝试使用
PdfPageEventHelper
OnStartPage
事件方法来创建一个简单的内容表

一切都差不多完成了,唯一的问题是对
OnStartPage
的第一次调用
PdfWriter
CurrentPageNumber
是错误的,它应该是1,但是是2,然后,在所有其他调用中,
CurrentPageNumber
在它应该是的页面中

这是我的密码

public class MyPdfEventHandler: PdfPageEventHelper
{        
    protected List<PageIndex> Indice = new List<PageIndex>();
    public override void OnStartPage(PdfWriter writer, Document document)
    {
        PageIndex pi = new PageIndex
        {
            Page = writer.CurrentPageNumber,
            Name = "Name Example",
            Text = "Text Example"
        }        
        Indice.Add(pi);
    }
}
公共类MyPdfEventHandler:PdfPageEventHelper
{        
受保护列表标识=新列表();
开始页上的公共覆盖无效(PdfWriter writer,文档)
{
PageIndex pi=新的PageIndex
{
Page=writer.CurrentPageNumber,
Name=“Name示例”,
Text=“Text示例”
}        
添加标记(pi);
}
}
为什么会这样?我做错什么了吗


谢谢

我无法复制您的问题

我创建了以下事件侦听器:

public class OnStartPageTestHandler : PdfPageEventHelper
{
    public override void OnStartPage(PdfWriter writer, Document document)
    {
        Console.WriteLine("OnStartPage - PdfWriter {0}, Document {1}", writer.CurrentPageNumber, document.PageNumber);
    }
}
并在以下试验方法中使用

public void TestOnStartPagePageNumber()
{
    using (MemoryStream memoryStream = new MemoryStream())
    using (Document document = new Document())
    {
        PdfWriter writer = PdfWriter.GetInstance(document, memoryStream);
        writer.PageEvent = new OnStartPageTestHandler();
        document.Open();

        for (int i=0; i<16; i++)
        {
            document.Add(new Paragraph("Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet."));
        }
    }
}
因此,
PdfWriter
文档
都返回正确的当前页码



对于测试,我使用了当前的iText(Sharp)v5.5.13。如果您碰巧使用了旧版本,请更新,可能您处理的是一个修复了很长时间的错误…

我的回答是否澄清了“为什么会发生这种情况?我做错了什么吗?”@mkl完全,我忘了接受答案,对不起!