itextsharp中的动态行数

本文关键字:动态 itextsharp | 更新日期: 2023-09-27 18:28:04

我想使用itextsharp生成一个pdf,根据我从存储过程中返回的记录数量动态生成行数。

例如,如果我的存储过程中有3条记录,我希望itextsharp生成如下:

(第1栏)(第2栏)(3栏)

第1排面包1$93215321

第2排牛奶1.5$1234678

第3排香肠5$54678912

对于下一个pdf,如果存储过程包含5条记录,它将显示3列5行。

使用itextsharp可以做到这一点吗?请有人帮帮我:)!

谢谢!

itextsharp中的动态行数

是的,这是可能的。我甚至为此写了一整本书

您可能想要使用PdfPTable类。这门课在第4章中有解释。例如,请参阅HeaderFooter1示例,其中我循环访问包含许多电影标题和这些电影放映的数据库。结果是一个PDF,其中的表的行数与某一天对应的记录的行数相同:header_footer_1.PDF

我看到您正在使用iTextSharp,所以您可能想看看示例的C#端口。

创建PdfPTable非常容易。您只需创建该类的一个实例,然后向其中添加PdfPCell实例

// a table with three columns
PdfPTable table = new PdfPTable(3);
// the cell object
PdfPCell cell;
// we add a cell with colspan 3
cell = new PdfPCell(new Phrase("Cell with colspan 3"));
cell.Colspan = 3;
table.AddCell(cell);
// now we add a cell with rowspan 2
cell = new PdfPCell(new Phrase("Cell with rowspan 2"));
cell.Rowspan = 2;
table.AddCell(cell);
// we add the four remaining cells with addCell()
table.AddCell("row 1; cell 1");
table.AddCell("row 1; cell 2");
table.AddCell("row 2; cell 1");
table.AddCell("row 2; cell 2");

在您的情况下,创建一个具有3列的PdfPTable就足够了,就像在简短的代码片段中所做的那样,然后在存储过程的结果集中的所有记录上创建一个循环。将每个字段的内容放入PdfPCell中,并将该单元格添加到PdfPTable中。循环完成后,将PdfPTable添加到Document实例中。

警告:有些人可能会认为你的问题是"家庭作业"问题。你的问题并不能说明你尝试了什么。通常,人们希望你在发布问题之前做一些努力。不要射杀信使。我只是提醒你,如果你的问题被否决或结束,你不会感到惊讶。