initial add
This commit is contained in:
69
Fab2ApprovalSystem/PdfGenerator/PdfViewController.cs
Normal file
69
Fab2ApprovalSystem/PdfGenerator/PdfViewController.cs
Normal file
@ -0,0 +1,69 @@
|
||||
// --------------------------------------------------------------------------------------------------------------------
|
||||
// <copyright file="PdfViewController.cs" company="SemanticArchitecture">
|
||||
// http://www.SemanticArchitecture.net pkalkie@gmail.com
|
||||
// </copyright>
|
||||
// <summary>
|
||||
// Extends the controller with functionality for rendering PDF views
|
||||
// </summary>
|
||||
// --------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
namespace Fab2ApprovalSystem.PdfGenerator
|
||||
{
|
||||
using System.Web.Mvc;
|
||||
using System.IO;
|
||||
|
||||
/// <summary>
|
||||
/// Extends the controller with functionality for rendering PDF views
|
||||
/// </summary>
|
||||
public class PdfViewController : Controller
|
||||
{
|
||||
private readonly HtmlViewRenderer htmlViewRenderer;
|
||||
private readonly StandardPdfRenderer standardPdfRenderer;
|
||||
|
||||
public PdfViewController()
|
||||
{
|
||||
this.htmlViewRenderer = new HtmlViewRenderer();
|
||||
this.standardPdfRenderer = new StandardPdfRenderer();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="pageTitle"></param>
|
||||
/// <param name="viewName"></param>
|
||||
/// <param name="model"></param>
|
||||
/// <returns></returns>
|
||||
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 new BinaryContentResult(buffer, "application/pdf");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="fileName"></param>
|
||||
/// <param name="viewName"></param>
|
||||
/// <param name="model"></param>
|
||||
protected void SavePdf(string fileName, 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, "");
|
||||
|
||||
using (FileStream fs = new FileStream(fileName, FileMode.Create))
|
||||
{
|
||||
fs.Write(buffer, 0, buffer.Length);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user