这是我的代码:
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
这为我提供了一页PDF及其中的数据。数据比页面长,所以我想每隔50行插入一个新页面。我该如何解决这个问题?
一个简单的
PdfPTable tableSumme = new PdfPTable(dtUebersicht.Columns.Count-1);
widthsSumme = new float[] { 4.2f, 5f, 5f, 5f, 5f };
tableSumme.SetWidths(widthsSumme);
tableSumme.WidthPercentage = 100;
tableSumme.TotalWidth = 500f;
foreach (DataColumn c in dtUebersicht.Columns)
{
PdfPCell Spalte = new PdfPCell(new Phrase(c.ColumnName, VerdanaFont));
Spalte.HorizontalAlignment = Element.ALIGN_CENTER;
Spalte.VerticalAlignment = Element.ALIGN_MIDDLE;
tableSumme.AddCell(Spalte);
}
PdfContentByte cbSumme = writerSumme.DirectContent;
foreach (DataRow dr in dtUebersicht.Rows)
{
PdfPCell Spalte0 = new PdfPCell(new Phrase(dr[0].ToString(), VerdanaFont));
Spalte0.HorizontalAlignment = Element.ALIGN_CENTER;
Spalte0.VerticalAlignment = Element.ALIGN_MIDDLE;
PdfPCell Spalte1 = new PdfPCell(new Phrase(dr[1].ToString(), VerdanaFont));
Spalte1.HorizontalAlignment = Element.ALIGN_CENTER;
Spalte1.VerticalAlignment = Element.ALIGN_MIDDLE;
tableSumme.AddCell(Spalte0);
tableSumme.AddCell(Spalte1);
}
tableSumme.WriteSelectedRows(0, -1, 35, 757, cbSumme);
不起作用。感谢
答案 0 :(得分:2)
以下是@Bruno Lowagie评论后的一个小例子。 在添加所有行之前到达页面末尾时,它们将添加到下一页。
Document doc = new Document();
FileStream fs = new FileStream(@"your path", FileMode.Create, FileAccess.Write);
PdfWriter writer = PdfWriter.GetInstance(doc, fs);
doc.Open();
List<string> columns = new List<string> {"col1", "col2", "col3", "col4", "col5"};
PdfPTable table = new PdfPTable(columns.Count);
table.SetWidths(new[] { 5f, 5f, 5f, 5f, 5f });
table.WidthPercentage = 100;
table.TotalWidth = 500f;
table.HeaderRows = 1;
foreach (string col in columns)
{
PdfPCell cell = new PdfPCell(new Phrase(col));
table.AddCell(cell);
}
for (int i = 0; i < 100; i++)
{
for (int j = 0; j < columns.Count; j++)
{
PdfPCell cell = new PdfPCell(new Phrase($"{i},{j}"));
table.AddCell(cell);
}
}
doc.Add(table);
doc.Close();