我想尝试使用试用许可证的iText7 PDF Flattening。调用Flatten方法时,它会抛出异常“Method not found: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;
像这样的错误消息
找不到方法: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。您可能希望最终使用这些版本。