IText7许可证不适用于SharePoint

时间:2016-11-22 08:21:48

标签: itext itext7

LicenseKey.LoadLicenseFile不适用于sharepoint项目。

当我创建一个控制台工具并手动添加itext.licesekey.dll时,生成的pdf文件没有许可证。但是,如果我通过PM命令Install-Package itext7.licensekey添加它,它可以正常工作。

你知道为什么会发生这种情况吗?

提前致谢, 全胜

2 个答案:

答案 0 :(得分:3)

有两种可能的原因导致这种情况发生:

  1. 您使用的是错误版本的许可证密钥库,用于检查许可证文件。 对于iText 5,该库名为itextsharp.licensekey.dll,其根名称空间为iTextSharp。另一方面,对于iText 7,它被称为itext.licensekey.dll,其根名称空间为itext。 与PM command Install-Package itext7.licensekey一起安装的https://www.nuget.org/packages/itext7.licensekey上的NuGet包是您的iText 7许可证的正确许可证密钥库。

  2. 您手动添加的许可证密钥库 正确,但您没有以正确的方式添加,以便您的项目知道在哪里找到它。这就是NuGet包管理器的便利性:它确保以正确的方式添加库。我自己从未使用过.NET,所以我不能详细介绍,但据我所知,就依赖管理而言,NuGet有点像.NET世界的Maven。

  3. 顺便说一下,因为您是具有有效许可证密钥的iText客户,您可能还有一份支持合同,您应该在iText JIRA中询问有关您的许可证的问题。我根据您的姓名找不到您的登录信息,每位客户最多可以注册3个有资格获得支持的联系人。请咨询贵公司购买iText许可证的人员。

    或者您使用的是限时试用许可证,在这种情况下,您也可以联系iText Sales了解有关许可证的问题。

答案 1 :(得分:0)

我已经反编译了itext dll,并在iText.Kernel.Version类中找到了方法GetInstance:

string str = "iText.License.LicenseKey, itext.licensekey";
string str1 = "GetLicenseeInfo";
Type type = Type.GetType(str);
if (type == null)
{
    Version.version.AddAGPLPostfix(null);
}

变量类型为null。 有关如何从GAC获取DLL的更多信息,请查看here 解决方案看起来应该是这样的 我想正确的字符串应该是这样的

string str = "iText.License.LicenseKey, itext.licensekey, Version=2.0.2.0, Culture=neutral, PublicKeyToken=8354ae6d2174ddca";