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

How to nest tables without extending the inner table?

我在 .net 项目中使用 itextsharp 5.5.3 生成 PDF 文件。我有一个带有两个单元格(在一行中)的 PdfPTable。我在每个单元格中放了另一个 PdfPTable - 第一个有两行,第二个有三行。较小的 table 的最后一行伸展以填充 space。我怎样才能使较小的 table 不拉伸并对齐到它所在单元格的底部?

请看下面的屏幕截图:

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

您描述的是将 table 直接添加到另一个 table 时发生的情况(屏幕截图中的第一个 table):

outerTable.addCell(innerTable);

或者您可能在描述将 table 添加为 PdfPCell 构造函数的参数时发生的情况(屏幕截图中的第二个 table):

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

请注意,两者之间的区别很细微:当您将内部 table 直接添加到外部 table 时,会考虑默认单元格的填充。默认情况下,此填充为 2。当你传递内部table作为参数创建一个PdfPCell时,单元格的填充默认为0。

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

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

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

cell.VerticalAlignment = Element.ALIGN_BOTTOM;