1

我正在使用 iTextsharp(版本4.1.6 - 一个 LGPL 分支)来生成一个仅包含一个表格的 PDF。我的项目是一个 .net 4 应用程序。

该表可以有很多列和很多行,PDF 不会包含任何其他内容(所以我想在 A4 页面上使用横向布局)。

因此,我敲了这个(我把它简化为与iTextSharp 交互的代码,你可以猜到columns,data和变量是什么):valms

// 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等,但我对如何达到这个结果感到困惑。

4

0 回答 0