使用iTextSharp的Rowspan无法正常工作

时间:2010-10-14 08:45:38

标签: c# itext html-table

我正在尝试用iTextSharp创建一个简单的表,所以使用C#。目标是这样一个表:

问题在于,如果我在单元格A上将rowspan应用为2,则iTextSharp不会渲染rowpanned单元格,这意味着单元格具有相同的单元格B高度。这是代码:

    PdfPTable corporateTable = new PdfPTable(2);
    corporateTable.HeaderRows = 1;
    corporateTable.TotalWidth = pdfWidth - 50;

    PdfPCell vCell = new PdfPCell();
    vCell.Border = Rectangle.BOX;
    vCell.Rowspan = 2;
    vCell.Phrase = new Phrase("A", new Font(fontLh, 7f, 1, BaseColor.BLACK));
    corporateTable.CompleteRow();
    corporateTable.AddCell(vCell);


    PdfPCell vCellx = new PdfPCell();
    vCellx.Phrase = new Phrase("B", new Font(fontLh, 7f, 1, BaseColor.BLACK));
    vCellx.Colspan = 3;
    corporateTable.AddCell(vCellx);

    PdfPCell vCell1 = new PdfPCell();
    vCell1.Phrase = new Phrase("C", new Font(fontValue, 7f, 0, BaseColor.BLACK));
    corporateTable.AddCell(vCell1);

    corporateTable.WriteSelectedRows(0, -1, 100f, 100f, writer.DirectContent);
    document.Close();

怎么了?我正在使用最新版本的DLL。

3 个答案:

答案 0 :(得分:4)

基本答案是:它有效!如果再添加两个单元格,您将看到一个单元格(A下面的单元格)未填充。

但这不是你所期望的(我也没有)。要实现您想要的使用嵌套表,这意味着:

  • 创建一个包含两个列的表
  • 将单元格A插入表格
  • 创建单元格2
  • 再创建一个包含1列的表
    • 将单元格B插入表2
    • 将单元格c插入表2
  • 将表格2插入单元格2

搜索itext rowspan,你会发现多个完全类型化的例子。

HTH

马里奥

答案 1 :(得分:0)

我认为它会起作用。尝试删除以下代码行:

corporateTable.CompleteRow();
...
vCellx.Colspan = 3;

答案 2 :(得分:0)

问题出在

vCellx.Colspan = 3; 

使用

vCellx.Colspan = 1; 

因为您声明了包含两列的pdf表。您已经添加了具有行距3的一列,因此只有另一列而不是三列