【问题标题】:iTextSharp Conversion from Table to pdfPTableiTextSharp 从 Table 到 pdfPTable 的转换
【发布时间】:2010-12-25 13:19:26
【问题描述】:

我有一个旧的 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)

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

有什么想法吗?

谢谢。

【问题讨论】:

  • 我在从 v4 迁移到 v5 时遇到了类似的问题。我的具体问题与页眉页脚功能有关。我几乎到了将新代码恢复为使用旧 iTextSharp dll 的地步,只是为了节省将大量报告转换为新版本所花费的时间。
  • 好吧,至少我并不孤单。我只是觉得很难相信向后兼容性只是被最新版本抛弃了。我花了大约半天的时间试图转换一些报告,然后用旧版本恢复到我的旧代码,转换它的工作量太大了。

标签: vb.net itextsharp


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-18
    • 2011-01-20
    • 2023-03-07
    • 1970-01-01
    • 2012-03-18
    • 2010-11-25
    相关资源
    最近更新 更多