LicenseKey.LoadLicenseFile不适用于sharepoint项目。
当我创建一个控制台工具并手动添加itext.licesekey.dll时,生成的pdf文件没有许可证。但是,如果我通过PM命令Install-Package itext7.licensekey添加它,它可以正常工作。
你知道为什么会发生这种情况吗?
提前致谢, 全胜
答案 0 :(得分:3)
有两种可能的原因导致这种情况发生:
您使用的是错误版本的许可证密钥库,用于检查许可证文件。
对于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许可证的正确许可证密钥库。
您手动添加的许可证密钥库 正确,但您没有以正确的方式添加,以便您的项目知道在哪里找到它。这就是NuGet包管理器的便利性:它确保以正确的方式添加库。我自己从未使用过.NET,所以我不能详细介绍,但据我所知,就依赖管理而言,NuGet有点像.NET世界的Maven。
顺便说一下,因为您是具有有效许可证密钥的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";