2

我通过 nuget 安装了 Rotativa,以便将我的 mvc 视图呈现为 pdf 文档。效果很好:)

这是项目的样子。

-Core 
-Model
-WebMvc
--/Rotativa
--/various_dlls...

我想打破它并将 Rotativa 移动到另一个名为 Core 的项目。但是,当我这样做时会出现错误,因为 Rotativa 文件夹必须在我的 WebMvc 项目中。有什么办法可以让 Rotativa 在 Core 项目中像这样工作吗?

-Core 
--/Rotativa
--/various_dlls...
-Model
-WebMvc

谢谢!

4

2 回答 2

1

使用 Rotativa.1.6.1,我能够将“Rotativa”文件夹完全移出我的项目。相同的逻辑应该适用于进入您的核心项目。

在您的 MVC 方法中,请确保设置路径,否则库将找不到wkhtmltopdf.exe.

        ActionAsPdf result = new ActionAsPdf("Index");
        result.WkhtmltopdfPath = @"C:\path\Rotativa";
于 2014-08-25T13:34:01.997 回答
0

不漂亮,但这里有一个解决方案。

在 appSettings 下的 Web.config

<add key="WkhtmltopdfPath" value="[path to wkhtmltopdf.exe]"/>

然后在 WkhtmltopdfDriver.cs 中的 Convert(string wkhtmltopdfPath, string switch, string html)

string s = System.Web.Configuration.WebConfigurationManager.AppSettings["WkhtmltopdfPath"].ToString();

if (!String.IsNullOrEmpty(s)) {
    wkhtmltopdfPath = s;
}

这将覆盖默认路径。

于 2014-04-17T18:47:37.213 回答