Я использовал этот пример кода Rotativa 1.6.4 для создания PDF файла со страницы в приложении .NET MVC 5.
public ActionResult PrintIndex()
{
var a = new ActionAsPdf("Index", new { name = "Giorgio" }) { FileName = "Test.pdf" };
a.Cookies = Request.Cookies.AllKeys.ToDictionary(k => k, k => Request.Cookies[k].Value);
a.FormsAuthenticationCookieName = System.Web.Security.FormsAuthentication.FormsCookieName;
a.CustomSwitches = "--load-error-handling ignore";
return a;
}
public ActionResult Index(string name)
{
ViewBag.Message = string.Format("Hello {0} to ASP.NET MVC!", name);
return View();
}
Он не печатал страницу индекса, а вместо этого печатал мою страницу входа.
Как только я исправил проблему аутентификации, генерация PDF была чрезвычайно медленной даже с CustomSwitches
. (Несколько минут)
Вышеприведенный код может действительно работать для вас - он обошел проблему аутентификации с помощью свойства Cookies
, но для меня это было слишком медленным.
Как распечатать безопасную страницу, а также сделать это быстро?