我想尝试使用试用许可证的iText7 PDF Flattening。 当调用Flatten方法时,它会抛出异常"找不到方法:Boolean iText.Licence.LicenceKey.IsTrial()。" 这是否意味着Flatten方法不能与试用许可证一起使用或者我在做错误? 我使用NuGet的itext7,最新稳定版本中的所有组件: itext7 v7.1.0 itext7.licencekey v3.0.0 itext7.pdfxfa v1.0.2
我已经从.xml文件成功加载了试用许可证。
这是我的代码示例:
byte[] result;
LicenseKey.LoadLicenseFile(_path.MapPath("~/itextkey?????????????.xml"));
XFAFlattenerProperties flattenerProperties = new XFAFlattenerProperties()
.SetPdfVersion(XFAFlattenerProperties.PDF_1_7)
.CreateXmpMetaData()
.SetTagged()
.SetMetaData(
new MetaData()
.SetAuthor("xxxxxxx")
.SetSubject("xxxxxx")
.SetTitle("xxxxxx"));
XFAFlattener xfaf = new XFAFlattener()
.SetFontSettings(new XFAFontSettings().SetEmbedExternalFonts(true))
.SetFlattenerProperties(flattenerProperties)
.SetViewMode(XFAFlattener.ViewMode.SCREEN);
using (var dest = new MemoryStream())
{
xfaf.Flatten(new MemoryStream(source), dest);
result = dest.ToArray();
}
return result;
答案 0 :(得分:3)
像
这样的错误消息找不到方法:Boolean iText.Licence.LicenceKey.IsTrial()。
通常表示正在使用不兼容的库。在这种情况下,(旧)pdfxfa v1.0.2与(新)licencekey v3.0.0不相容。
正如您最终看到的那样,回到itext.licencekey库的v2.0.4解决了问题。
如果您查看Release notes for iText 7.1.0中的兼容性矩阵,您将看到itext7 v7.1.0和licencekey v3.0.0适用于pdfXFA v2.0.0。您可能希望最终使用这些版本。