2

MVC ビューを PDF ドキュメントとしてレンダリングするために、nuget を介して Rotativa をインストールしました。よく働く :)

これがプロジェクトの外観です。

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

Rotativa を Core という名前の別のプロジェクトに移したいと考えています。ただし、Rotativa フォルダーは WebMvc プロジェクト内にある必要があるため、エラーが発生します。コア プロジェクトで Rotativa を機能させるためにできることはありますか?

-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]"/>

次に、Convert(文字列 wkhtmltopdfPath、文字列スイッチ、文字列 html) の WkhtmltopdfDriver.cs で

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

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

これにより、デフォルトのパスが上書きされます。

于 2014-04-17T18:47:37.213 に答える