#if !NET8 // -------------------------------------------------------------------------------------------------------------------- // // http://www.SemanticArchitecture.net pkalkie@gmail.com // // // Extends the controller with functionality for rendering PDF views // // -------------------------------------------------------------------------------------------------------------------- namespace Fab2ApprovalSystem.PdfGenerator { using System.Web.Mvc; using System.IO; /// /// Extends the controller with functionality for rendering PDF views /// public class PdfViewController : Controller { private readonly HtmlViewRenderer htmlViewRenderer; private readonly StandardPdfRenderer standardPdfRenderer; public PdfViewController() { this.htmlViewRenderer = new HtmlViewRenderer(); this.standardPdfRenderer = new StandardPdfRenderer(); } 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"); } 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); } } } } #endif