当我尝试在Linux上使用HiQPdf将html转换为PDF(在Windows上工作正常(时,我收到此错误:
Something went wrong: System.Exception: Cannot get the executing assembly directory. Empty directory
at hiqpdfimpl.ᤤ..ctor(ᤣ A_0)
at HiQPdf.HtmlToImage.ᜀ(String A_0, String A_1, String A_2, ᣩ& A_3, Hashtable& A_4)
at HiQPdf.HtmlToPdf.ᜀ(String A_0, String A_1, String A_2, String A_3, Boolean A_4)
at HiQPdf.HtmlToPdf.ᜀ(Stream A_0, String A_1, String A_2, String A_3, String A_4, Boolean A_5)
at HiQPdf.HtmlToPdf.ᜁ(String A_0, String A_1, String A_2, String A_3, Boolean A_4)
at HiQPdf.HtmlToPdf.ConvertHtmlToMemory(String html, String baseUrl)
现在它从.NET Core开始在Linux上运行。 首先,您必须摆脱代码中的System.Drawing.Common
,因为现在它仅在Windows上受支持。您可以使用ImageSharp,SkiaSharp或Microsoft.Maui.Graphics。所有这些都是跨平台的。
然后,安装libgdiplus
.
在 ubuntu 上:sudo apt-get install -y libgdiplus
在 macOS 上(必须在您的系统中安装自制软件(:brew install mono-libgdiplus
重新启动 Nginx 服务器:sudo systemctl restart nginx
如果问题仍然存在,请在项目文件夹中打开终端并制作
nuget restore <Your-project-or.sln>