在 iTextsharp 表格中每 10 行后插入分页符

问题描述 投票:0回答:2

我的表格可能超过 3 页长。但我只想每页上有 10 行。是否可以在每十行后添加一个分页符?我尝试添加计数,并为每 10 行插入分页符,但分页符只是到达表格顶部,因此表格从第二页开始。

        DataSet dsTable = null;
        dsTable = DataUtils.GetTableProperties(CompNew.CompanyID, "InvoicePrint");

        iTextSharp.text.pdf.PdfPTable table = new PdfPTable(dsTable.Tables[1].Rows.Count);
        table.WidthPercentage = 100;

            int count = 0;
            foreach (DataRow record in records.Tables[0].Rows)
            {
                foreach (string Heading in Headings)
                {
                    table.AddCell(new Paragraph(record[Heading].ToString(), arialBold));
                }
                if (count != 0)
                {
                    if ((count % 10) == 0)
                    {
                        document.NewPage();
                    }
                }
                count++;

            }

    paragraphTable1.Add(table);
    document.Add(paragraphTable1); 
c# asp.net itext page-break
2个回答
1
投票

尝试下面的代码

      if ((count % 10) == 0)
      {
         paragraphTable1.Add(table);
         document.Add(paragraphTable1);
         document.NewPage();
      }

0
投票

table.DeleteBodyRows();必须在新页面之前执行。

试试这个:

  if ((count % 10) == 0)
  {
     paragraphTable1.Add(table);
     document.Add(paragraphTable1);
     table.DeleteBodyRows();
     document.NewPage();
  }

或当前版本3.3.5 by iTextSharp.LGPLv2.Core

  if ((count % 10) == 0)
  {
     document.Add(table);
     table.DeleteBodyRows();
     document.NewPage();
  }
© www.soinside.com 2019 - 2024. All rights reserved.