我有一个 ASP.NET MVC4 应用程序,我想在其中将 html 页面导出到 PDF 文件,我使用此代码,它工作正常:代码
此代码将 html 页面转换为在线 PDF,我想直接下载该文件。
如何更改此代码以获得此结果?
我有一个 ASP.NET MVC4 应用程序,我想在其中将 html 页面导出到 PDF 文件,我使用此代码,它工作正常:代码
此代码将 html 页面转换为在线 PDF,我想直接下载该文件。
如何更改此代码以获得此结果?
使用 FileContentResult:
protected FileContentResult ViewPdf(string pageTitle, string viewName, object model)
{
// Render the view html to a string.
string htmlText = this.htmlViewRenderer.RenderViewToString(this, viewName, model);
// Let the html be rendered into a PDF document through iTextSharp.
byte[] buffer = standardPdfRenderer.Render(htmlText, pageTitle);
// Return the PDF as a binary stream to the client.
return File(buffer, "application/pdf","file.pdf");
}
将其作为附件并在返回结果时给它一个文件名:
protected ActionResult ViewPdf(string pageTitle, string viewName, object model)
{
// Render the view html to a string.
string htmlText = this.htmlViewRenderer.RenderViewToString(this, viewName, model);
// Let the html be rendered into a PDF document through iTextSharp.
byte[] buffer = standardPdfRenderer.Render(htmlText, pageTitle);
// Return the PDF as a binary stream to the client.
return File(buffer, "application/pdf", "myfile.pdf");
}
使文件显示为附件并弹出“另存为”对话框的原因是以下行:
return File(buffer, "application/pdf", "myfile.pdf");
采用:
这适用于 VB.NET(下面的 C#)
Public Function PDF() As FileResult
Return File("../PDFFile.pdf", "application/pdf")
End Function
在您的操作方法中。PDFFIle 是您的文件名。
对于 C#
Public FileResult PDF(){
return File("../PDFFile.pdf", "application/pdf");
}