Align .editorconfig files Move Controller logic to DMO classes GlobalVars.AppSettings = Models.AppSettings.GetFromConfigurationManager(); Question EditorConfig Project level editorconfig Format White Spaces AppSetting when EnvironmentVariable not set Corrective Actions Tests Schedule Actions Tests DMO Tests Controller Tests Get ready to use VSCode IDE
67 lines
2.2 KiB
C#
67 lines
2.2 KiB
C#
#if !NET8
|
|
|
|
// --------------------------------------------------------------------------------------------------------------------
|
|
// <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>
|
|
|
|
|
|
|
|
/// <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>
|
|
|
|
|
|
|
|
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 |