我正在使用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 (仅提及设法使自己犯规,从而引起很多乐趣)。

10-06 09:26