向PdfPTable,iTextSharp添加一列

时间:2010-02-26 16:16:24

标签: c# itextsharp pdfptable

我正在使用iTextSharp创建PDF文档。我看到如何创建一个包含多个列的新表,但无论如何我都看不到动态添加新列。我遇到的问题是我不会马上知道我需要的列数,所以需要不断添加它们

有人可以开导我,或者每次我需要添加一列时我是否需要重新创建表格?

由于 垫

3 个答案:

答案 0 :(得分:2)

创建一个包含所需表格的中间模型,然后能够为您创建PDF表格会不会有意义?

我知道这听起来像很多工作,但从长远来看,它应该有助于你能够在构建它们时动态地改变行和列,然后在最后,简单地“编译”表并吐出PdfPTable对象?

答案 1 :(得分:0)

一旦创建了列计数,PdfPTable表就是不可变的。

我能想到的唯一解决方法是从一堆整列开始,然后......也不会起作用。您甚至无法将单元格添加到现有行。我以为你可以使用列跨越来掩盖你的额外列,并在向行中添加更多单元格时调整它们,但这也不起作用。

添加列时,必须重建表。没办法。

我强烈建议您在创建表格之前弄清楚如何确定列数...即使您必须“干运行”数据。使用一些中间格式(String [] []或其他)来保存您的数据,然后从中构建表,而不是数据。或者至少跟踪你需要多少列。

鉴于大量数据,单次通过可能不实用/可能。但是几次重建你的整个桌子并不是更好。这真是一个性能调优问题,只有你有信息才能回答。

答案 2 :(得分:-1)

ITextSharp表以与HTML表格不同的方式工作(我猜你已经习惯了)。

您需要告诉它的是您拥有的列数,然后继续添加单元格。

假设您创建了一个包含5列的pdfptable。您添加的第5个单元格将位于第一行,第6个单元格位于第2行的第1列。

唯一的缺点是,如果你需要添加不填充所有单元格的行,但我通常只需添加一个空单元格或带有空格的单元格来解决这个问题。