我正在使用 iTextsharp(版本4.1.6 - 一个 LGPL 分支)来生成一个仅包含一个表格的 PDF。我的项目是一个 .net 4 应用程序。
该表可以有很多列和很多行,PDF 不会包含任何其他内容(所以我想在 A4 页面上使用横向布局)。
因此,我敲了这个(我把它简化为与iTextSharp 交互的代码,你可以猜到columns
,data
和变量是什么):val
ms
// Create a landscape A4 page...
var doc = new Document(new Rectangle(297, 210), 10, 10, 10, 10);
PdfWriter.GetInstance(doc, ms);
doc.Open();
var table = new PdfPTable(columns.Count()) {HeaderRows = 1};
var titleFont = FontFactory.GetFont(BaseFont.COURIER_BOLD, 10);
var bodyFont = FontFactory.GetFont(BaseFont.COURIER, 10);
// Add the column headings...
foreach (var c in columns)
{
var cell = new PdfPCell(new Phrase(c.Title, titleFont))
{
NoWrap = true
};
table.AddCell(cell);
}
// Add the data...
foreach (var o in data)
{
foreach (var c in columns)
{
var cell = new PdfPCell(new Phrase(val, bodyFont))
{
NoWrap = true
};
table.AddCell(cell);
}
}
doc.Add(table);
doc.Close();
可爱,除了创建一个1页文档,其中所有单元格都重叠并且完全不可读。
我想要实现的是如下所示:
所以列永远不会重叠,它们只是扩展到下一页,并且列标题随着行向下延伸而重复。
我试过摆弄KeepTogether
等,但我对如何达到这个结果感到困惑。