如何在IText表中的两个单元格周围绘制边框?

时间:2010-12-28 14:34:27

标签: c# .net wpf itextsharp itext

我使用IText生成PDF。所以我使用以下代码生成一个表:

    iTextSharp.text.Table aTable = new iTextSharp.text.Table(10, 7);

   //Row 1
   aTable.AddCell(new Cell("ANDC"), 0, 4);
   aTable.AddCell(new Cell("0.123"), 0, 5);

现在我想在这两个单元格周围画一个边框。我知道如何在桌子或单个细胞周围画一个边框,但我怎么能在两个细胞周围做呢?

重要的是要注意表中还有其他单元格,而不是上面代码中的两个单元格。

1 个答案:

答案 0 :(得分:1)

首先,PdfPTable和PdfPCell为您提供更多控制权,而不是使用它们。

其次,我推荐一个单元格事件处理程序。您需要跟踪哪个单元格是哪个,这样您就可以(仅)在适当的时间/地点绘制适当的艺术线条。

啊,因为单元格事件处理程序是特定于单元格的,所以你可以为左右单元格添加一个不同的单元格,或者只为第二个单元格的处理程序绘制它自己宽度的两倍...或者第一个可以记录它的宽度,第二个可以用这个信息绘制,或者......

你明白了。

PdfPCell leftCell = new PdfPCell();
...
leftCell.setCellEvent(new MyLeftCellEvent());
myPdfPTable.addCell(leftCell);

PdfPCell rightCell = new PdfPCell();
...
rightCell.setCellEvent(new MyRightCellEvent());
myPdfPTable.addCell(rightCell);

其他方式

您可以关闭PdfPCell中的特定边框(从矩形派生):

cell.disableSide(Rectangle.RIGHT);
otherCell.disableSide(Rectangle.LEFT);

少了很多代码。