2010-02-26 52 views
3

我使用iTextSharp创建PDF文档。我看到如何创建一个包含多个列的新表,但我无法看到动态添加一个新列。我有的问题是我不会知道我需要的列的数量,所以需要继续添加他们添加一列到PdfPTable,iTextSharp

有人可以请赐教,或者我将不得不重新创建表每一次我需要添加一列?

感谢 垫

回答

-1

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

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

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

唯一的缺点是,如果你需要添加不是所有单元格都被填充的行,但是我通常只需添加一个空单元格或一个单元格,并在其中添加一个空格即可解决此问题。

+0

我想你已经误解了我的问题,我想添加一个新的列,即我有一个3列的表,我想添加第4列,而不是移动到一个新的行 – 2010-03-01 10:31:19

+0

Urh,yep,对不起,在一天中尽早解决问题! FWIW我花了很多时间用IText,并不知道你可以这样做的方式。 – CResults 2010-03-01 15:50:31

0

只要列计数一旦创建,PdfPTable表就不可变。

我能想到的唯一解决方法是从整列的列开始,并且不行的也不行。您甚至无法将单元格添加到现有行。我以为你可以在列中跨越四周来屏蔽多余的列,并在向行中添加更多单元格时对其进行调整,但这也不起作用。

必须添加列时重建表。没有办法绕过它。

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

鉴于大量的数据,一次通过可能不现实/可能。但几次重建你的整个桌子并不会好很多。这实际上是一个性能优化问题,只有您有信息才能回答。

2

那么创建一个包含所需表格的中间模型是否有意义,并且能够为您创建PDF表格?

我知道这听起来像很多工作,但从长远来看,它应该有所帮助,因为您可以在构建它们时动态更改行和列,最后只需“编译”该表并吐出PdfPTable对象?