【问题标题】:How to nest tables without extending the inner table?如何在不扩展内表的情况下嵌套表?
【发布时间】:2015-02-11 00:39:09
【问题描述】:

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

【问题讨论】:

  • 向我们展示您的代码:您是使用构造函数new PdfPCell(table) 嵌套表还是使用PdfPCell.AddElement() 方法添加表。在 StackOverflow 上提问时,通常会显示一些代码。

标签: .net itextsharp


【解决方案1】:

请看下面的屏幕截图:

此屏幕截图取自 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;

【讨论】:

  • 使用 addElement 方法解决了这个问题。非常感谢您的帮助。在使用 itextsharp 时,您的书、文档和 stackoverflow 答案对我帮助很大。感谢您为社区所做的一切。
猜你喜欢
  • 2022-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-07
  • 1970-01-01
  • 2023-01-28
  • 1970-01-01
相关资源
最近更新 更多