【问题标题】:Insert Page Break after every 10 rows in iTextsharp table在 iTextsharp 表中每 10 行后插入分页符
【发布时间】:2017-11-27 12:12:05
【问题描述】:

我的表格可能超过 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); 

【问题讨论】:

  • 我认为最好的答案是:不要担心页面上的行数,只要确保行没有被拆分。目前还不清楚为什么您只想在每页上有 10 行。您给我们的原因听起来对于可能有更优雅解决方案的问题来说是一个糟糕的解决方法。

标签: c# asp.net itext page-break


【解决方案1】:

试试下面的代码

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

【讨论】:

  • 您自己尝试过吗?我不明白这如何以及为什么会起作用。 (而且我是最初开发 iText 的人,所以……我应该明白,但我不明白。)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多