什么是HTML到PDF的最佳解决方案(在Azure Web应用程序上)

时间:2015-10-15 03:25:17

标签: asp.net-mvc pdf-generation azure-web-sites wkhtmltopdf

实际上我正在尝试使用NReco PDF转换器将html内容转换为pdf,但是,这行代码为pdfDoc.GeneratePdf(HtmlContent); 无法通过Azure Web应用程序,但它在我的开发环境中正常工作。所以我的问题是我应该选择哪种云服务?

2 个答案:

答案 0 :(得分:5)

我已成功设法让wkhtmltopdf处理由app服务支持的Azure功能。我使用了自动安装wkhtmltopdf库的OpenHtmltoPdf c#包。我在这里发布了所有必需的文件:

https://gist.github.com/tmakin/80e1905094245c857c493b7879657095

2018年7月更新
我现在切换到DinkToPdf,用于在net core上运行的azure函数v2上的pdf。有关详细信息,请参见此处:
https://odetocode.com/blogs/scott/archive/2018/02/14/pdf-generation-in-azure-functions-v2.aspx

答案 1 :(得分:4)

Azure Apps(以前的网站)在受限制(部分信任)环境中运行,wkhtmltopdf.exe(由NReco PdfGenerator包装器内部使用)在这种情况下无法直接从asp.net应用程序执行。

更新

不幸的是,它也无法与Azure WebJobs一起使用:任务在相同(有限)的环境下执行,因为WebSites和wkhtmltopdf使用的GDI函数被禁用。

如果您的ASP.NET应用程序使用基于wkhtmltopdf的组件进行PDF生成(无论如何调用它 - 在单独的进程中或作为本机DLL API),它只能在Azure WebRole / WorkerRole / VM下使用。

- 2017年更新 -

Wkhtmltopdf(和NReco PdfGenerator包装器)可与Azure应用程序一起使用,具有基于VM的订阅计划(基本或更高版本)。至少存在一个问题:似乎字体API仍受限制,自定义字体无法呈现为PDF。