获取Rotativa PDF在共享主机上的工作

时间:2015-12-09 07:25:12

标签: c# model-view-controller rotativa

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

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

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

我可以尝试哪些其他解决方案来实现共享托管?

2 个答案:

答案 0 :(得分:2)

我遇到了一个适合我的解决方案。

目前在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导出操作可以正常用于共享托管。

希望这能为您节省大量时间。

答案 1 :(得分:0)

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

如果可移植性是个问题,我会使用100%托管的c#代码库(如ITextSharp或HtmlRenderer for PDF)与RazorViewEngine结合使用,以便将视图转换为HTML代码。