如何在 Azure windows 应用程序中启用 wkhtmltopdf

How can i enable wkhtmltopdf in Azure windows App

我正在使用 WKHTMLTOPDF 库将 html 转换为 pdf,之前我在 ubuntu 服务器上托管了我的应用程序,我可以在其中安装该库通过命令行,

我想迁移到 Azure 应用服务,无论如何我可以在 Azure windows 平台

中使用这个库 (wkhtmltopdf)

请帮我解决这个问题。

据我所知,对于 Windows 上的 Azure WebApp,不支持任何使用 GDI 的应用程序,因为官方 wiki 页面介绍了 Win32k.sys (User32/GDI32) Restrictions Azure Web App sandbox,如下图

但是,wkhtmltopdf不使用GDI是一个特殊的框架,可以在Azure WebApp上使用Windows,但是你必须先在没有GUI交互的Azure WebApp上安装它。

所以唯一的办法就是先从downloads page of offical site or GitHub releases页面下载7z存档格式的MXE (MinGW-w64)发布文件Windows,如下图,

图 1. 官方下载页面

图 2. GitHub 发布页面

并在本地解压缩并将其添加到您的 PHP 项目中,然后将 wkhtmltopdfbin 路径附加到 PATH 环境变量的尾部,通过PHP 在您的 PHP 应用程序开始时运行 getenv and putenv 或尝试通过在 appSettings 中添加键 PATH 来设置 PATHweb.config 文件.

最后,您可以使用第 3 方库 mikehaertl/phpwkhtmltopdf 在 Azure WebApp 上为 Windows 执行从 HTML 到 PDF 的转换功能。