在同一个项目中使用两个Itextsharp版本

时间:2016-12-28 10:21:00

标签: c# asp.net itext

我正在使用Intranet门户网站,其中有许多子系统链接到门户网站。现在门户是在.net 4.0上新开发的。我在这个门户中使用了itextsharp版本5.5.9。

Pdf生成在项目中运行良好,但问题是当我将旧子系统与此门户合并时,在itextsharp版本中存在冲突,因为有很多东西不支持itextsharp 5.5.9 版本例如:

  1. HeaderFooter 页脚=新的HeaderFooter(新词组(

  2. myParagraph。的参考setAlignment

  3. iTextSharp.text。 tableh = new iTextSharp.text.Table(11);

  4. 单元格 csr =新单元格(sr);

  5. 以上是一些在itextsharp较新版本中不支持的示例。

    超过5个子系统正在使用itextsharp旧版本。

    由于在门户网站中有很多子系统要合并,我希望能够使用这两种版本的itextsharp。

    有可能吗?

    请帮助

    由于

1 个答案:

答案 0 :(得分:1)

您的问题有不同的解决方案。

解决方案#1:升级到最新版本而不是5.5.9

您不能将5.5.9与旧版本一起使用,因为所有这些版本都使用相同的软件包名称。会有命名冲突(正如您所经历的那样)。

然而,用于C#的iText 7是对iTextSharp的完全重写,因此我们选择了不同的包名。在旧版本旁边使用iText 7时不会发生冲突。

这意味着您必须重写当前版本。

解决方案#2:重写旧代码,以便与iText 5.5.9配合使用。

旧应用程序should not be used in production environments使用的代码,因此您确实应该升级这些应用程序。

HeaderFooter课程被放弃,转而使用页面事件。 TableCell类已替换为PdfPTablePdfPCell。我不了解myParagraph.SetAlignment(),但如果它现在myParagraph.Alignment,我就不会感到惊讶。

结论:"解决方案"需要相当多的工作,但贵公司似乎长时间使用iTextSharp,所以无论如何都需要升级时间。