gpt4 book ai didi

Dockerized Dotnet Core 2.1 在使用 Select.HtmlToPdf.NetCore 时抛出 Gdip 异常

转载 作者:行者123 更新时间:2023-12-03 07:14:31 26 4
gpt4 key购买 nike

我正在使用 Select.HtmlToPdf.NetCore(18.3.0) 在 Dotnetcore 2.1 中将 Html 转换为 pdf。它在本地环境中运行良好,但是当使用 Docker 托管时,它会抛出一个错误:

{"fileName":"System.TypeInitializationException: The type initializer for 'Gdip' threw an exception. ---> System.DllNotFoundException: Unable to load shared library 'libdl' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: liblibdl: cannot open shared object file: No such file or directory\n at Interop.Libdl.dlopen(String fileName, Int32 flag)\n at System.Drawing.SafeNativeMethods.Gdip.LoadNativeLibrary()\n at System.Drawing.SafeNativeMethods.Gdip..cctor()\n --- End of inner exception stack trace ---\n at System.Drawing.SafeNativeMethods.Gdip.GdipNewPrivateFontCollection(IntPtr& fontCollection)\n at SelectPdf.Lib.ᡜ..ctor()\n at SelectPdf.Lib.៞..ctor()\n at SelectPdf.Lib.៞..ctor(ᡏ A_0, ᠝ A_1)\n
at SelectPdf.HtmlToPdf.ᜁ(String A_0, String A_1, String A_2, String A_3, Boolean A_4)\n at SelectPdf.HtmlToPdf.ConvertHtmlString(String htmlString)

我尝试在 Dockerfile 中添加这些行,但仍然出现相同的错误。

FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base  
RUN apt-get update
RUN apt-get install -y apt-utils
RUN apt-get install -y libgdiplus
RUN ln -s /usr/lib/libgdiplus.so /usr/lib/gdiplus.dll
WORKDIR /app
EXPOSE 80

最佳答案

我知道这是一个老问题,但我最近遇到了这个问题,我想分享我的解决方案。
Select.HtmlToPdf.NetCore 不适用于 Linux
只是不这样做。如果您已经使用 html 生成了字符串,我建议您找到这个 nuget:Haukcode.DinkToPdf
要查找一些教程,只需 google DinkToPdf。 Haukcode 刚刚更新,是对 docker 更友好的版本。
一些 dockerfile 的东西:

来自 microsoft/aspnetcore:2.0.0 作为基础
运行 apt-get update
运行 apt-get install -y apt-utils
运行 apt-get install -y libgdiplus
运行 apt-get install -y libc6-dev
运行 ln -s/usr/lib/libgdiplus.so/usr/lib/gdiplus.dll
...
我希望它能帮助别人:)

关于Dockerized Dotnet Core 2.1 在使用 Select.HtmlToPdf.NetCore 时抛出 Gdip 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52069939/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com