[英]Unable to load the dll libwkhtmltox using dinktopdf for a .net core2.2 azure functionapp
我有一個使用 .net Core 2.2 的 Azure 函數應用程序,它是為將 html 文本轉換為 pdf 而編寫的。 我正在使用 DinkToPdf。 當我運行該函數時,我得到“無法加載 libwkhtmltox.dll。我已經嘗試了一些帖子中提到的替代解決方案,但它仍然拋出相同的錯誤。
我嘗試使用 Directory.GetCurrentDirectory 並使用 path.combine
代碼如下:
[FunctionName("Function1")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
CustomAssemblyLoadContext context = new CustomAssemblyLoadContext();
var architectureFolder = (IntPtr.Size == 8) ? "64 bit" : "32 bit";
context.LoadUnmanagedLibrary($@"{Directory.GetCurrentDirectory()}\Dependencies\libwkhtmltox.dll");
var IocContainer = new SynchronizedConverter(new PdfTools());
string html = await new StreamReader(req.Body).ReadToEndAsync();
var globalSettings = new GlobalSettings
{
ColorMode = ColorMode.Color,
Orientation = Orientation.Portrait,
PaperSize = PaperKind.A4,
Margins = new MarginSettings { Top = 10 },
};
var objectSettings = new ObjectSettings
{
PagesCount = true,
WebSettings = { DefaultEncoding = "utf-8" },
HtmlContent = html
};
var pdf = new HtmlToPdfDocument()
{
GlobalSettings = globalSettings,
Objects = { objectSettings }
};
byte[] pdfBytes = null;// IocContainer.Convert(pdf);
return new FileContentResult(pdfBytes, "application/pdf");
}
}
我在使用此解決方案時也遇到了很多麻煩,但我認為一個問題可能是您的目錄。 嘗試使用
$@"{context.FunctionDirectory}\Dependencies\libwkhtmltox.dll");
反而。 您可以通過重載函數來訪問執行上下文。
[HttpTrigger(AuthorizationLevel.Function, "get", Route = "iamgroot")] HttpRequest req, ExecutionContext context)
訪問函數主機目錄的文檔
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.