Document.NewPage()在foreach循环中不起作用

时间:2017-10-05 18:09:33

标签: c# foreach itext

我有一个foreach循环,在3行gridview之后,我想要一个新页面开始,然后添加几行。 foreach工作正常,因为它添加了我的几行就好但却无法使NewPage()正常工作?如果我执行writer.PageEmpty = false它会创建一堆空白页面。我错过了什么?

foreach (GridViewRow row in poGridview.Rows)
{
    if (i == 3)
    {
        writer.PageEmpty = false;
        pdfDoc.NewPage();
        p.Add(line1);
        p.Add(new Paragraph("\n"));
        p.Add(new Paragraph("\n"));
        p.Add(line2);
        p.Add(new Paragraph("\n"));
        p.Add(new Paragraph("\n"));
        p.Add(hr);
        p.Add(new Paragraph("\n"));

        i = 0;
    }
    i++; 
}

2 个答案:

答案 0 :(得分:0)

添加新页面后,您需要以新段落开头,而不是重复使用旧段落。

答案 1 :(得分:0)

必须创建一个新短语并将这些值分配给它才能使其正常工作..

Phrase p2 = new Phrase();
            if (i == 3)
            {
                pdfDoc.NewPage();
                p2.Add(line1);
                p2.Add(new Paragraph("\n"));
                p2.Add(new Paragraph("\n"));
                p2.Add(line2);
                p2.Add(new Paragraph("\n"));
                p2.Add(hr);
                p2.Add(new Paragraph("\n"));
                i = 0;
            }
            i++;