4

我有一个旧的 ASP.NET 项目,最初是在 ASP.NET 1.1 w/iText.NET 中完成的,然后转换为 .NET 2.0 和 iTextSharp 4.1.6.0。它使用了很多表格(我假设 pdfptable 在创建时不是一个选项。)我正在尝试将此代码转换为使用最新的 iTextSharp 5.0.0 dll,现在看到表格和单元格已被删除。无论如何,我开始转换它,很快发现没有与 Table 提供的许多功能相当的功能。主要是 AddCell 不再允许 col,row 设置。这段代码中有成千上万个这样的调用,而将其更改为逐行线性生成的可能性目前看起来毫无希望。当前代码如下所示:

Dim myTable As New Table(NumReq + 2, IngDS.Tables(0).Rows.Count + 3)
        myTable.SetWidths(Width)
        myTable.Width = 100 
        myTable.Padding = 2 

myCell = New Cell(New Phrase("Some Text", New iTextSharp.text.Font(iTextSharp.text.Font.HELVETICA, 8, iTextSharp.text.Font.NORMAL, iTextSharp.text.Color.BLACK)))
                    myCell.SetHorizontalAlignment(Element.ALIGN_RIGHT)
                    myCell.GrayFill = 0.75 
                    myTable.AddCell(myCell, Row, Col)

myCell = New Cell(New Phrase("Other Text",New iTextSharp.text.Font(iTextSharp.text.Font.HELVETICA, 8, iTextSharp.text.Font.NORMAL, iTextSharp.text.Color.BLACK)))
                    myCell.GrayFill = 0.75 
                    myTable.AddCell(myCell, Row, Col+1)

在我踏上这条路之前,我希望有人能够指出我完全错过的方向,这将使这种转换更加简单。

有任何想法吗?

谢谢。

4

1 回答 1

0

您不再需要在 AddCell 方法中指定行和列。调用 AddCell 方法只会将您要添加的任何内容添加到下一个单元格中。因此,如果您有一个包含两行和两列的表,第一次调用 AddCell 会将其添加到第 1 行第 1 列。第二次调用它会将其添加到第 1 行第 2 列。下一次它将添加到第 2 行第 1 列,依此类推。

如果您想跳过调用 AddCell("") 将任何内容放入单元格并跳过它。

于 2011-07-20T20:48:07.917 回答