2015-02-11 68 views
0

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

+0

向我们展示你的代码:你使用嵌套表构造函数'new PdfPCell(table)',或者你使用'PdfPCell.AddElement()'方法添加表。在StackOverflow上提出问题时显示一些代码是自定义的。 – 2015-02-11 07:49:28

回答

2

请看看下面的屏幕截图:

Screen shot

该屏幕截图是从NestedTables例子的结果采取的。

你所描述,当你添加表直接到另一个表(在屏幕截图第一个表)时会发生什么:

outerTable.addCell(innerTable); 

或者,也许你所描述的,当你添加表作为一个参数发生了什么一个PdfPCell(第二台屏幕截图)构造函数:

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

注意两者的区别很微妙:当你直接添加内表外表时,默认的单元格的填充取进入acc 'mount。这个填充默认是2。当您将内部表格作为参数传递以创建PdfPCell时,默认情况下单元格的填充为0。

如果我正确理解你的问题,你想要在屏幕截图中的第三个表中显示的行为。该表显示了当您添加表到PdfPCell第一会发生什么:

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

您可以垂直对齐的内表是这样的:

cell.VerticalAlignment = Element.ALIGN_BOTTOM; 
+0

使用addElement方法解决了问题。非常感谢您的帮助。在使用itextsharp时,您的书籍,文档和stackoverflow答案帮助了我很多。感谢您为社区所做的一切。 – lng 2015-02-11 21:43:31

相关问题