2014-06-18 5 views
0

아래 코드에서 OnEndPage 이벤트를 오버로드하고 문서에 단락을 추가하려고했습니다. 그러나 코드를 실행하려고하면 "System.StackOverflowException"오류가 발생합니다. 왜 이런 일이 일어나는 지 알 수 있습니까? 어떻게 해결할 수 있습니까?"OnEndPage"이벤트 처리기에서 ''System.StackOverflowException "

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

스택 추적을 얻습니까? 문서에 단락을 추가하면 'OnEndPage'가 다시 호출됩니까? –

+0

당신은'Add '에 대한 호출을 제거 할 수 있습니까? –

+1

나는 단락을 onEnd에 추가했기 때문에 단락을 추가 할 때 문서를 다시 작성해야하므로 onEnd를 다시 호출 한 다음 단락을 추가하고 OnEnd를 호출하고 ... – Gusman

답변

2

그것은 페이지 이벤트 document.Add()를 사용하는을 금지 입니다. 매개 변수로 전달 된 document 개체는 실제로 PdfDocument 개체입니다. 읽기 전용으로 만 사용해야합니다. 이것은 내 책 iText in Action - Second Edition에 설명되어 있습니다.

OnEndPage 방법으로 콘텐츠를 추가하려면 writer이 필요합니다 (예 : writer.DirectContent).

+0

감사합니다. 나는 그것을 지금 풀었다. –

관련 문제