Exporting a PDF-file with ASP.NET MVC

2020-05-29 03:40发布

I have an ASP.NET MVC4 application in which I'd like to export a html page to PDF-file, I use this code and it's works fine: code

This code converts a html page to online PDF, I'd like to download directly the file.

How can I change this code to obtain this result?

3条回答
孤傲高冷的网名
2楼-- · 2020-05-29 04:03

Make it as an attachment and give it a filename when returning the result:

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");
}

What makes the file appear as attachment and popup the Save As dialog is the following line:

return File(buffer, "application/pdf", "myfile.pdf");
查看更多
Ridiculous、
3楼-- · 2020-05-29 04:14

Use:

This is for VB.NET (C# below)

    Public Function PDF() As FileResult
        Return File("../PDFFile.pdf", "application/pdf")
    End Function

In your action method. Where PDFFIle is your file name.

For C#

Public FileResult PDF(){
    return File("../PDFFile.pdf", "application/pdf");
}
查看更多
Explosion°爆炸
4楼-- · 2020-05-29 04:20

With a 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");
}
查看更多
登录 后发表回答