我正在使用iTextsharp(版本4.1.6 - 一个LGPL分支)来生成一个只包含一个表的PDF。我的项目是.net 4应用程序。
该表可以包含大量列和大量行,PDF不包含任何其他内容(因此我想在A4页面上使用横向布局)。
因此,我将其删除(我将其缩减为与iTextSharp交互的代码,您可以猜出columns
,data
,val
和{{1}变量是):
ms
可爱除了创建 1 页面文档,其中所有单元格都重叠且完全不可读。
我想要达到的目标是:
所以列永远不会重叠,它们只会扩展到下一页,并且当行向下延伸时,列标题会重复。
我试过摆弄// 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();
等等,但我对如何实现这个结果感到沮丧。