【问题标题】:IText 7 Object reference not set to an instance of an objectIText 7对象引用未设置为对象的实例
【发布时间】:2021-04-19 14:15:53
【问题描述】:

我需要将一些 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 是:

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

所以,它指向与字体有关的东西?

我发现的唯一建议是清理各种目录和缓存。我从头开始创建了一个干净的解决方案,但发生了同样的错误。

有人可以帮忙吗?

【问题讨论】:

  • 这不是一个决议。更多故障排除提示。 iText 可能正在寻求解决不存在的程序集。如果您订阅 AppDomain.CurrentDomain.AssemblyResolve 事件,您可以查看 AppDomain 是否正在尝试解析(查找)它无法找到的程序集。这是链接:docs.microsoft.com/en-us/dotnet/api/…

标签: c# itext itext7


【解决方案1】:

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

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


【讨论】:

  • 非常感谢您的建议。添加了该行,现在我在这个新行得到了错误:(
  • 是的,您能否显示错误或提供更多信息
【解决方案2】:

请看这个:

Null Reference Exception when calling iText7 PdfAcroForm.GetAcroForm() in .Net Core 3.1 class library

还有这个:

iText7 convert HTML to PDF "System.NullReferenceException."

我希望能够将它们中的任何一个标记为重复,因为它们都是同一个问题 - iText7 自己的代码的内部问题,我们基本上必须忽略。但是,我无法将它们标记为重复项,因为该功能仅在接受其中一个答案时才有效。

但我只是想让你知道,这不是你的问题,而是他们的问题,所以在他们修复它之前,请确保你在设置中启用了“仅我的代码”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多