【问题标题】:Converting HTML to PDF with Windows Azure app services/Syncfusion使用 Windows Azure 应用程序服务/Syncfusion 将 HTML 转换为 PDF
【发布时间】:2019-06-04 18:59:35
【问题描述】:

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

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

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

原因当机器上没有安装 OpenSSL 包时。 解决方案 为了转换 HTTPS 站点,需要在机器中安装 OPENSSL 库。可以通过从以下链接下载其设置来安装 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

是否可以使用应用服务来实现这一点?如果是这样,我会怎么做?

【问题讨论】:

  • this answer。在您的应用服务的自定义域选项卡下还有一个仅 HTTPS 开关,您可能希望在调用外部 API 后启用它。

标签: azure pdf syncfusion


【解决方案1】:

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

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

    • libeay32.dll

    • libssl32.dll

    • ssleay32.dll

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

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

有关在 Azure 中添加 OPENSSL 程序集的更多信息,请参阅下面的链接。

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

注意:我为 Syncfusion 工作。

【讨论】:

  • 我们对 Bridge 应用程序的方法有一个非常相似的问题:这种解决方法是否也适用于桥接?您如何处理 x64、x32、ARM 和 ARM64 等多种架构?
【解决方案2】:

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

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

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

以上内容仅供参考,仅供参考。希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多