1

我最近使用 Rotativa nuget 包将 MVC 视图导出为 PDF。

这适用于本地以及专用 Windows 服务器,但不适用于共享主机。

我得到了一般的 Rotativa 错误。我无权更改可执行文件的权限,托管服务提供商也不会更改权限。

我可以尝试使用哪些其他解决方案来使其在共享主机上运行?

4

2 回答 2

3

我遇到了一个对我有用的解决方案。

当前在 NuGet 中的版本是旧版本。

您需要访问http://wkhtmltopdf.org/downloads.html并下载最新的稳定版本。对我来说,它是 64 位版本,因为共享托管服务器是 Windows Server 2008 R2 64 位。

这将下载一个EXE。使用 7Zip 或 WinRar 等解压 EXE。

打开解压后的文件夹,找到名为 bin 的文件夹。复制以下内容:

  • wkhtmltoimage.exe
  • wkhtmltopdf.exe
  • wkhtmltox.dll

将这些文件 FTP 到您的实时站点 wwwroot -> Rotativa 文件夹。您将需要覆盖该文件夹中的现有文件。

现在,您的 PDF 导出操作将适用于共享主机。

希望这可以为您节省很多时间。

于 2015-12-09T07:36:27.780 回答
0

它现在可以工作,但由于 Rotativa 使用的是 wkhtmltopdf exe,它是您代码之外的可执行文件,如果您尝试切换到另一个环境,您可能会再次遇到问题。

如果可移植性是一个问题,我会使用 100% 托管的 c# 代码库,例如用于 PDF 的 ITextSharp 或 HtmlRenderer 以及用于将视图转换为 html 代码的 RazorViewEngine。

于 2015-12-09T09:17:08.337 回答