2017-10-05 47 views
0

我有一个foreach循环,在gridview的3行后,我想要一个新的页面启动,然后添加几行。 foreach工作正常,因为它增加了我的几行就好,但不能让NewPage()工作?如果我做writer.PageEmpty = false它创建了一堆空白页。我错过了什么?Document.NewPage()不在foreach循环中工作

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++; 
} 
+1

是什么'p',是它一样'pdfDoc'? –

+0

可能相关:[Document.NewPage()不添加新页面](https://stackoverflow.com/questions/11430019/document-newpage-not-adding-newpage) – crashmstr

+0

p是这个gridview添加后的一段所有p的pdfDoc使用pdfDoc.Add(p); – ksuProgrammer

回答

0

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

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++;