如何在iTextSharp中排列表格边框

时间:2016-03-19 14:01:10

标签: asp.net itextsharp

我正在尝试制作试算平衡报告。我想要下面的格式如下所示。我可以制作这样的表格 enter image description here

我试过了,

table.DefaultCell.Border = Rectangle.RIGHT_BORDER | Rectangle.RIGHT_BORDER;

但是代码只给出了垂直行。我可以像上面那样制作表格吗?

1 个答案:

答案 0 :(得分:0)

您似乎无法理解bitwise | operator的含义,因为这没有意义:

table.DefaultCell.Border = Rectangle.RIGHT_BORDER | Rectangle.RIGHT_BORDER;

上面一行相当于:

table.DefaultCell.Border = Rectangle.RIGHT_BORDER;

另外:如果使用table.DefaultCell.Border,则不应期望不同的单元格具有不同的边框。您要求iTextSharp以这样的方式绘制所有隐式创建的单元格,使它们只有右边框。当iTextSharp遵守该命令时,为什么会感到惊讶?

您需要明确创建每个PdfPCell并为每个PdfPCell left_cell = new PdfPCell(); left_cell.Border = Rectangle.RIGHT_BORDER | Rectangle.TOP_BORDER | Rectangle.BOTTOM_BORDER; // add stuff to left_cell table.AddCell(left_cell); PdfPCell middle_cell = new PdfPCell(); middle_cell.Border = Rectangle.TOP_BORDER | Rectangle.BOTTOM_BORDER; // add stuff to middle_cell table.AddCell(middle_cell); PdfPCell right_cell = new PdfPCell(); right_cell.Border = Rectangle.LEFT_BORDER | Rectangle.TOP_BORDER | Rectangle.BOTTOM_BORDER; // add stuff to right_cell table.AddCell(right_cell); 定义一个边框:

DefaultCell

在您的代码中,您可以在每次AddCell()调用之前向getCell()应用不同的边框,但这并没有多大意义。最好创建一个自定义PdfPCell方法,以您希望的方式创建{{1}}个实例。