如何在不扩展内部表的情况下嵌套表?

时间:2015-02-11 00:39:10

标签: .net itextsharp

我在.net项目中使用itextsharp 5.5.3来生成PDF文件。我有一个带有两个单元格的PdfPTable(在一行中)。我在每个单元格中放置了另一个PdfPTable - 第一个有两行,第二个有三行。较小的表的最后一行伸展以填充空间。如何让较小的桌子不拉伸并对齐放置在其下方的单元格底部?

1 个答案:

答案 0 :(得分:2)

请看下面的截图:

Screen shot

此屏幕截图取自NestedTables示例的结果。

您正在描述将表格直接添加到另一个表格时的情况(屏幕截图中的第一个表格):

outerTable.addCell(innerTable);

或者您可能正在描述当您将表添加为PdfPCell的构造函数(屏幕截图中的第二个表)的参数时会发生什么:

PdfPCell cell = new PdfPCell(innerTable);
outerTable.addCell(cell);

请注意,两者之间的差异很小:当您将内部表直接添加到外部表时,会考虑默认单元格的填充。此填充默认为2。将内部表作为参数传递以创建PdfPCell时,单元格的填充默认为0。

如果我正确理解您的问题,您需要屏幕截图中第三个表格中显示的行为。该表显示了首先将表添加到PdfPCell时会发生什么:

PdfPCell cell = new PdfPCell();
cell.addElement(innerTable);
outerTable.addCell(cell);

您可以像这样垂直对齐内部表:

cell.VerticalAlignment = Element.ALIGN_BOTTOM;