如果超过iTextShartp pdf中的页面大小,如何在新的pdf页面上继续数据写入

时间:2013-07-29 21:03:39

标签: c# pdf-generation itextsharp

我已浏览过这个网站,但无法找到解决问题的相关方法。

这是我的问题  我正在使用iTextSharp创建一个PDF文件,并且正在创建该文件。我正在创建一个表并为其分配gridview数据,如下所示。

//Add Actual columns from the datatable
for (int j = 0; j < dt.Columns.Count; j++) {
    PdfPCell cellHeader = new PdfPCell(FormatHeaderPhrase(dt.Columns[j].ColumnName.ToString()));
    cellHeader.HorizontalAlignment = 1;
    table3.AddCell(cellHeader);// adds the header with proeprties
}
//Add the actual rows from the datatable
for (int i = 0; i < dt.Rows.Count; i++) {
    for (int k = 0; k < dt.Columns.Count; k++) {
        PdfPCell cellRows = new PdfPCell(FormatPhrase(dt.Rows[i][k].ToString().Replace("<br/>","\n").Replace("<sup>","")));
        if (k != 2) {
            cellRows.HorizontalAlignment = 1;
            cellRows.VerticalAlignment = Element.ALIGN_MIDDLE;
        }
        else {
            cellRows.HorizontalAlignment = 0;
        }
        table3.AddCell(cellRows);
        table3.SplitRows = true;
        table3.SplitLate = true;
    }
}

我有A3页面大小。这里的问题是,当表中的数据超出页面大小时,它会修剪超出的部分,只显示适合一页的数据。如何根据表的内容进行多页(自动分页)。目前我看到的数据符合pdf的一页。它应该生成多个页面。我怎样才能做到这一点。

请告诉我您的意见。我很感激他们。谢谢。

1 个答案:

答案 0 :(得分:0)

这可能有用,尝试在每n行后创建新页面,假设当前页面只适合 10行,每10条记录后创建新页面

假设您创建了一个初始文档实例

 Document document =new Document(PageSize.A4);

在n行之后,通过调用

添加新页面
document.NewPage();