【发布时间】:2016-06-03 17:02:45
【问题描述】:
我使用的是 iTextSharp 5.4.5.0 版。
我正在尝试使用多个 PdfPCell 打印 PdfPTable。 PdfPCell 的数量将是动态的。那么如何为动态生成的 PdfPCell 分配宽度?
我知道如何为单元格的静态和固定数量分配宽度。但是对于动态单元格,如何为每个动态生成的单元格分配宽度? PdfPCell 的数量不固定。
请帮帮我?
谢谢。
【问题讨论】:
-
动态单元格数是指一行的某些单元格可以合并为一个colspan吗?或者你的意思是你的表的各个行在结构上没有共同点?
-
我的意思是,列数不是预先固定的。单元格将根据数据库中的数据动态生成。如果我有 5 条来自 db 的记录,则 5 列和 15 条记录,然后 15 列(PdfpCells)。那么如何动态地为每个单元分配宽度。对于每一行,单元格将是相同的。但是小区的总数不是预先固定的。我希望你现在明白了。谢谢
-
但是一旦你为第一行创建了单元格,你就知道了,不是吗?因此,您还可以将这些单元格添加到
List而不是PdfPTable。第一行的单元格完成后,您就知道表格的列数,可以创建具有该列数的PdfPTable,并将列表中的单元格添加到表格中。然后可以像往常一样添加下一行。 -
是的,我知道列的计数,但是如何为不同的单元格分配不同的宽度。我可以像这样创建 PdfPTable:“ PdfPTable table = new PdfPTable(noOfColumns);” 但我不能这样写:“table.SetTotalWidth(new float[] { 7, 104, 35, 35, 35, 35, 35, 35 });"因为细胞是动态生成的。我想将每个单元格分配为不同的宽度。
-
但是每一行单元格的宽度和每一行对应单元格的宽度是一样的,不是吗?因此,如果您按照我之前评论中的建议进行操作,并在创建第一行的单元格后创建
PdfPTable,则可以设置单元格宽度。
标签: c# asp.net itextsharp pdfptable