“'System.StackOverflowException” in “OnEndPage

2019-01-15 23:26发布

问题:

In the code below, you can see that I overrode OnEndPage event and tried to add a paragraph to the document. However, I get an "System.StackOverflowException" error when attempting to run the code. Does anyone have any idea why this is happening and how can I fix it?

public override void OnEndPage(PdfWriter writer, Document document)
{
    base.OnEndPage(writer, document);
    Paragraph p = new Paragraph("Paragraph");
    document.Add(p);
}

回答1:

It is forbidden to use document.Add() in a page event. The document object passed as a parameter is actually a PdfDocument object. You should use it for read-only purposes only. This is documented in my book iText in Action - Second Edition.

If you want to add content in the OnEndPage method, you need the writer, for instance writer.DirectContent.



标签: c# itextsharp