Html 到 Azure 函数中的 Pdf 库
Html to Pdf library in Azure Function
Azure 函数显然还不支持 System.Drawing
(sanbox info)。 运行 依赖于它的函数抛出以下消息:
System.Drawing is not supported on this platform.
我最初在 WebApp 中使用 Select.HtmlToPdf 从 HTML 创建 PDF 文档。但是,自从将 PDF 生成移动到 Azure 功能后,这不再是一种选择。
此外,推荐的库是 wkhtmltopdf
,但似乎没有 .netstandard2.0
版本。
您将如何使用 Azure Functions (C#) 完成 PDF 生成?
更新:该功能在 S1 - 应用服务计划中 运行。
Update2:使用 OdeToCode 上显示的方法给出错误 Qt: Could not initialize OLE (error 80010106)
我最近提出了一个从 HTML 页生成 PDF 文件的解决方案。我也很难找到一个合适的框架来 运行 在 Azure 函数中。但我发现使用 wkhtmltopdf,我可以从 HTML 页生成 PDF 文档。
这是一个link:
https://wkhtmltopdf.org/
我发现我可以 运行 使用的最低应用程序服务计划是:B1 服务计划。这不适用于消费计划。我使用实验性 Powershell 模式完成了此操作,但使用 C# 或任何其他受支持的语言也应该可以做到这一点。
我对 PDF 输出并不满意,但它完成了工作。有很多选项可供使用,但除了纵向或横向模式外,对我来说似乎没有太大区别。
对于DinkToPdf, the error Qt: Could not initialize OLE (error 80070005)
is caused by javascript tags or references. See the test done by Travis。当 js 被移除时,Function returns PDF 成功但错误消息仍然存在。
我找到了@Scott 提供的另一个库OpenHtmlToPdf works for Azure Function in S1(B1+ as @Filip mentioned) App service plan. Just change BuildPdf
method from the sample。还没有测试过它的性能。
private static byte[] BuildPdf(string html)
{
return OpenHtmlToPdf.Pdf.From(html).Content();
}
此时我创建了一个支持 Select.HtmlToPdf
的新 netcore2.0
Azure AppService API,如果它仍然不能与 netcore3.0
一会儿。
该函数仅调用带有一些参数的 API 并且可以等待 PDF 生成异步。
如Jerry has mentioned, it might work with DinkToPdf。但是,模板 html 文档不得包含 JavaScript,因此此解决方案对我的用例无效。
Azure 函数显然还不支持 System.Drawing
(sanbox info)。 运行 依赖于它的函数抛出以下消息:
System.Drawing is not supported on this platform.
我最初在 WebApp 中使用 Select.HtmlToPdf 从 HTML 创建 PDF 文档。但是,自从将 PDF 生成移动到 Azure 功能后,这不再是一种选择。
此外,推荐的库是 wkhtmltopdf
,但似乎没有 .netstandard2.0
版本。
您将如何使用 Azure Functions (C#) 完成 PDF 生成?
更新:该功能在 S1 - 应用服务计划中 运行。
Update2:使用 OdeToCode 上显示的方法给出错误 Qt: Could not initialize OLE (error 80010106)
我最近提出了一个从 HTML 页生成 PDF 文件的解决方案。我也很难找到一个合适的框架来 运行 在 Azure 函数中。但我发现使用 wkhtmltopdf,我可以从 HTML 页生成 PDF 文档。
这是一个link: https://wkhtmltopdf.org/
我发现我可以 运行 使用的最低应用程序服务计划是:B1 服务计划。这不适用于消费计划。我使用实验性 Powershell 模式完成了此操作,但使用 C# 或任何其他受支持的语言也应该可以做到这一点。
我对 PDF 输出并不满意,但它完成了工作。有很多选项可供使用,但除了纵向或横向模式外,对我来说似乎没有太大区别。
对于DinkToPdf, the error Qt: Could not initialize OLE (error 80070005)
is caused by javascript tags or references. See the test done by Travis。当 js 被移除时,Function returns PDF 成功但错误消息仍然存在。
我找到了@Scott 提供的另一个库OpenHtmlToPdf works for Azure Function in S1(B1+ as @Filip mentioned) App service plan. Just change BuildPdf
method from the sample。还没有测试过它的性能。
private static byte[] BuildPdf(string html)
{
return OpenHtmlToPdf.Pdf.From(html).Content();
}
此时我创建了一个支持 Select.HtmlToPdf
的新 netcore2.0
Azure AppService API,如果它仍然不能与 netcore3.0
一会儿。
该函数仅调用带有一些参数的 API 并且可以等待 PDF 生成异步。
如Jerry has mentioned, it might work with DinkToPdf。但是,模板 html 文档不得包含 JavaScript,因此此解决方案对我的用例无效。