/// <summary> /// This function is used for creating the invoice based on cshtml templates /// </summary> /// <param name="documentTemplate"></param> /// <param name="filePathToSave"></param> /// <param name="templateOption"></param> /// <returns></returns> public bool CreatePDFBasedOnCsHtmlTemplate(DocumentTemplate documentTemplate, string filePathToSave, TemplateOption templateOption = null) { FileStream objFileStream = null; try { string headerHtml = string.Empty; string bodyHtml = string.Empty; string footerHtml = string.Empty; documentTemplate.InvoicePdfGenerationDetails = new InvoicePdfGenerationDetails() { ImagesFolderRootPath = "" }; if (!string.IsNullOrWhiteSpace(documentTemplate.HeaderCsHtml)) { // Getting the header html headerHtml = RazorBoss.GetHtmlFromRazorView(documentTemplate.HeaderCsHtml, documentTemplate.InvoicePdfGenerationDetails); } if (!string.IsNullOrWhiteSpace(documentTemplate.BodyCsHtml)) { // Getting the body Html bodyHtml = RazorBoss.GetHtmlFromRazorView(documentTemplate.BodyCsHtml, documentTemplate.InvoicePdfGenerationDetails); } if (!string.IsNullOrWhiteSpace(documentTemplate.FooterCsHtml)) { // Getting the footer html footerHtml = RazorBoss.GetHtmlFromRazorView(documentTemplate.FooterCsHtml, documentTemplate.InvoicePdfGenerationDetails); } // Getting the blob data based on generated html and template option for file creation byte[] blob = CreatePDFBasedOnHTMLTemplate(headerHtml, bodyHtml, footerHtml, templateOption); // Creating the file stream object and writing to the file objFileStream = new FileStream(filePathToSave, FileMode.Create); objFileStream.Write(blob, 0, blob.Length); return(true); } catch (Exception ex) { MessageBox.Show("Error : " + ex.InnerException.Message); throw; } finally { // Closing and disposing the file stream object if (objFileStream != null) { objFileStream.Close(); objFileStream.Dispose(); } } }
public bool CreateHtmlBasedOnCsHtmlTemplate(DocumentTemplate documentTemplate, string filePathToSave, TemplateOption templateOption = null) { FileStream objFileStream = null; try { string headerHtml = string.Empty; string bodyHtml = string.Empty; string footerHtml = string.Empty; documentTemplate.InvoicePdfGenerationDetails = new InvoicePdfGenerationDetails() { ImagesFolderRootPath = "" }; if (!string.IsNullOrWhiteSpace(documentTemplate.HeaderCsHtml)) { // Getting the header html headerHtml = RazorBoss.GetHtmlFromRazorView(documentTemplate.HeaderCsHtml, documentTemplate.InvoicePdfGenerationDetails); } if (!string.IsNullOrWhiteSpace(documentTemplate.BodyCsHtml)) { // Getting the body Html bodyHtml = RazorBoss.GetHtmlFromRazorView(documentTemplate.BodyCsHtml, documentTemplate.InvoicePdfGenerationDetails); } if (!string.IsNullOrWhiteSpace(documentTemplate.FooterCsHtml)) { // Getting the footer html footerHtml = RazorBoss.GetHtmlFromRazorView(documentTemplate.FooterCsHtml, documentTemplate.InvoicePdfGenerationDetails); } // We write out html here : StringBuilder buffer = new StringBuilder(); buffer.Append("<Html><head></head><body>"); buffer.Append(headerHtml); buffer.Append(bodyHtml); buffer.Append(footerHtml); buffer.Append("</body></Html>"); // we get html byte[] blob = Encoding.ASCII.GetBytes(buffer.ToString()); // Creating the file stream object and writing to the file objFileStream = new FileStream(filePathToSave, FileMode.Create); objFileStream.Write(blob, 0, blob.Length); return(true); } catch (Exception ex) { MessageBox.Show("Error : " + ex.InnerException.Message); throw; } finally { // Closing and disposing the file stream object if (objFileStream != null) { objFileStream.Close(); objFileStream.Dispose(); } } }