我正在使用Rotativa在我的“MVC”应用程序中生成PDF。如何保存Rotativa PDF?完成所有过程后,我需要将文档保存在服务器上。
代码如下:
public ActionResult PRVRequestPdf(string refnum,string emid)
{
var prv = functions.getprvrequest(refnum, emid);
return View(prv);
}
public ActionResult PDFPRVRequest()
{
var prv = Session["PRV"] as PRVRequestModel;
byte[] pdfByteArray = Rotativa.WkhtmltopdfDriver.ConvertHtml("Rotativa", "Approver", "PRVRequestPdf");
return new Rotativa.ViewAsPdf("PRVRequestPdf", new { refnum = prv.rheader.request.Referenceno });
}
最佳答案
你可以试试看
var actionResult = new ActionAsPdf("PRVRequestPdf", new { refnum = prv.rheader.request.Referenceno, emid = "Whatever this is" });
var byteArray = actionResult.BuildPdf(ControllerContext);
var fileStream = new FileStream(fullPath, FileMode.Create, FileAccess.Write);
fileStream.Write(byteArray, 0, byteArray.Length);
fileStream.Close();
如果那不能解决问题,那么您可以按照答案here
只要确保您以这种方式进行操作,就不会让
PRVRequestPdf
作为PDF View 返回,而是像上面一样具有普通 View (仅提及设法使自己犯规,从而引起很多乐趣)。