使用 Windows Azure 应用 services/Syncfusion 将 HTML 转换为 PDF

Converting HTML to PDF with Windows Azure app services/Syncfusion

我正在尝试使用 Syncfusion 在 Windows Azure 上将 HTML 转换为 PDF。

在开发机器上运行良好。但是在 Windows Azure 上它不支持 HTTPS 协议。它只适用于 HTTP。

Syncfusion 的故障排除网站建议以下解决方案:

原因当机器上没有安装 OpenSSL 包时。 解决方案 要转换 HTTPS 站点,需要在机器上安装 OPENSSL 库。可以通过从下面 link,

下载其安装程序来安装 OPENSSL 库

OpenSSL

相反,可以在 Windows 系统文件夹中添加所需的程序集(对于 64 位机器,它应该放在

$SystemDrive\Windows\SysWOW64 对于 32 位机器,它应该放在

$SystemDrive\Windows\System32),

libeay32.dll
libssl32.dll
ssleay32.dll

https://help.syncfusion.com/file-formats/pdf/convert-html-to-pdf/webkit#troubleshooting

是否可以使用应用服务来实现?如果可以,我该怎么办?

由于Azure Web App sandbox的一些限制,我确定您不能直接在Windows系统文件夹中添加这些必需的程序集。

虽然我从未使用过Syncfusion,但根据我的经验,我认为您可以尝试将这些所需的dll 库添加到与Syncfusion 相同的文件夹中。因为dll加载路径一般是系统文件夹或者调用者的相同路径。

我的其他疑问,Azure默认支持SSL,我认为您不需要手动安装OpenSSL。可能您只需要更改代码以使用现有的 SSL 证书来支持 Syncfusion 的 HTTP,正如官方文档 Use an SSL certificate in your application code in Azure App Service 所说。

以上仅供参考,仅供参考。希望对你有帮助。

转换HTTPS站点时,由于Azure网站中缺少OPENSSL程序集,可能会出现空白页PDF。要转换 HTTPS 站点,转换器需要 OPENSSL 程序集。默认情况下,某些 Azure 网站没有 OPENSSL 程序集。因此,这些程序集应该明确地添加到网站中。我们无法将程序集放置在 Azure 应用服务环境的系统驱动器中。请参阅以下步骤将 OPENSSL 程序集放置在 Azure 中以将 HTTPS 站点转换为 PDF。

  1. 在项目中创建一个新文件夹并将 OPENSSL 程序集复制到 那个文件夹。

    • libeay32.dll

    • libssl32.dll

    • ssleay32.dll

  2. 在项目中包含该文件夹并将副本设置为输出 目录为“始终复制”。

  3. 获取OPENSSL程序集文件夹在C#中的路径并设置为 环境变量。

有关在 Azure 中添加 OPENSSL 程序集的详细信息,请参阅下文 link。

KB: https://www.syncfusion.com/kb/8821/blank-pdf-is-generated-when-converting-https-sites-to-pdf-in-azure

注意:我为 Syncfusion 工作。