6

我有一个 ASP.NET MVC4 应用程序,我想在其中将 html 页面导出到 PDF 文件,我使用此代码,它工作正常:代码

此代码将 html 页面转换为在线 PDF,我想直接下载该文件。

如何更改此代码以获得此结果?

4

3 回答 3

6

使用 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");
}
于 2013-08-27T15:58:41.233 回答
3

将其作为附件并在返回结果时给它一个文件名:

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");
于 2013-08-27T15:58:30.917 回答
1

采用:

这适用于 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");
}
于 2013-08-27T15:58:36.443 回答