NReco-HtmlToPdfConverter错误:指定的可执行文件不是此操作系统平台的有效应用程序



我使用NReco HtmlToPdfConverter,通常它工作正常。但有时我会遇到以下错误:

Cannot generate PDF: The specified executable is not a valid application for this OS platform.

代码非常简单,它是一个单独的类:

public class Converter : IConverter
{
private readonly object lockObject = new object();
public Converter()
{
HtmlToPdf = new HtmlToPdfConverter();
}
private HtmlToPdfConverter HtmlToPdf { get; }
public byte[] GeneratePdf(string htmlContent)
{
lock (lockObject)
{
return HtmlToPdf.GeneratePdf(htmlContent);
}
}
}

有人知道造成这种错误的原因是什么吗?

如果您使用嵌入wkhtmltopdf二进制文件的NReco.PdfGenerator nuget包,如果您从不同线程同时使用HtmlToPdfConverter类,这可能是可能的。尝试执行以下操作:

  • 确保HtmlToPdfConverter类的同一实例不会从不同的线程(同时(使用。每个线程都应该有自己的HtmlToPdfConverter类实例,因此它们将使用不同的wkhtmltopdf进程
  • wkhtmltopdf二进制文件是在首次使用时提取的。您可以在应用程序启动时强制执行此操作(通过调用"GeneratePdf"执行一些"伪"转换(,以避免以后可能出现的文件提取问题。或者,您可以切换到NReco.PdfGenerator.LT nuget包-这只是包装器-并自行部署wkhtmltopdf(无需提取二进制文件=可执行文件无法损坏(;注意,这个nuget包只能由商业用户使用

最新更新