IText 7对象引用未设置为对象实例

3
我需要将一些html转换成PDF。我发现IText7看起来是一个不错的解决方案。
我正在使用.net core 3.1进行开发。
但是,即使只是使用它的基本实现,我也会出现错误:
string basicPage = "<html><body><h1>My First Heading</h1><p>My first paragraph.</p></body></html>";

using (FileStream pdfDest = File.Open(@"C:\Users\Trevo\Desktop\output.pdf", FileMode.OpenOrCreate))
{
    ConverterProperties converterProperties = new ConverterProperties();
    HtmlConverter.ConvertToPdf(basicPage, pdfDest, converterProperties);
}

错误是每个人都喜欢的:

对象引用未设置为对象的实例。

内部异常为空,唯一的线索是SerializationStackTraceString是:

at iText.IO.Font.FontCache..cctor()

所以,它指向与字体有关的问题?

我找到的唯一建议是清理各种目录和缓存。我已经从头开始创建了一个干净的解决方案,但仍出现相同的错误。

有人可以提供任何帮助吗?


1
这不是一个解决方案,更像是一个故障排除提示。iText可能正在尝试解析一个不存在的程序集。如果你订阅了AppDomain.CurrentDomain.AssemblyResolve事件,你可以查看AppDomain是否在尝试解析(寻找)一个找不到的程序集。这是链接:https://learn.microsoft.com/en-us/dotnet/api/system.appdomain.assemblyresolve?view=netcore-3.1 - Glenn Ferrie
2个回答

3

尝试使用默认字体提供程序

                var converterProperties = new ConverterProperties();
                converterProperties.SetFontProvider(new DefaultFontProvider(true, true, true));



非常感谢您的建议。我已经添加了这行代码,但是现在在这个新的代码行上出现了错误 :( - Trevor Daniel
是的,你能展示错误或提供更多信息吗? - Hammad Shabbir
1
相同的崩溃,相同的位置在iText.IO.Font.FontCache..cctor()。 - Marc Roussel

3
请看这个:

在 .Net Core 3.1 类库中调用 iText7 PdfAcroForm.GetAcroForm() 时出现 Null Reference Exception

还有这个:

iText7 将 HTML 转换为 PDF 时出现 "System.NullReferenceException."

我希望能够将它们标记为重复问题,因为它们都是同一个问题 - iText7 自身代码的内部问题,我们基本上必须忽略它们。然而,我无法将它们标记为重复问题,因为只有一个答案被接受才能使用该功能。
但我只是想让你知道,这不是真正的你的问题,而是他们的问题,所以在他们修复它之前,请确保在设置中启用了“仅我的代码”选项。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接