我试图在我的. Net应用程序(C#编程语言)中加载iText7的许可证文件。我已经使用下面提到的语法给出了json文件的正确路径。
LicenseKey.LoadLicenseFile(new FileStream(@"pathtofile\iTextKey.json", FileMode.Open));
我收到的错误消息是:
Data at the root level is invalid. Line 1, position 1.
at System.Xml.XmlTextReaderImpl.Throw(Exception e)
at System.Xml.XmlTextReaderImpl.Throw(String res, String arg)
at System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace()
at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
at System.Xml.XmlTextReaderImpl.Read()
at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace)
at System.Xml.XmlDocument.Load(XmlReader reader)
at iText.License.Util.XmlWorker..ctor(Stream stream)
at iText.License.LicenseKey.LoadLicenseFileInternal(Stream licenseIs)
at iText.License.LicenseKey.LoadLicenseFile(Stream licenseIs)
我验证了JSON文件,它看起来没问题。
任何帮助解决这个问题的人都会有很大的帮助。
2条答案
按热度按时间dw1jzc5e1#
从堆栈跟踪中可以看出,它试图将文件解析为XML。
请参阅docs:
但是,如果您有JSON许可证密钥文件,请参阅iText 7.2.x的说明。
安装iText 7.2。
3xiyfsfu2#
尽管我通过nuget软件包安装了iText v7.2.4和iText.Licensing.Base v4.0.4,但我还是遇到了同样的错误。结果发现我的解决方案也有一个旧版本的iText(通过导入的库),并且使用的 LoadLicenseFile 方法来自那个旧库。
换句话说,请确保您调用的完全限定方法是 iText.Licensing.Base.LicenseKey.LoadLicenseFile