public FileResult Download(string path) { var htmlToPdf = new HtmlToPdfConverter(); var pdfContentType = "application/pdf"; TempData.Keep(); var sData = (dynamic)null; if (Session["sData"] == null) { sData = TempData["html"]; Session["sData"] = sData; return(File(htmlToPdf.GeneratePdf(sData, null), pdfContentType)); } else { sData = Session["sData"]; return(File(htmlToPdf.GeneratePdf(sData, null), pdfContentType)); } //byte[] fileBytes = System.IO.File.ReadAllBytes(HttpContext.Server.MapPath("~/applicant/"+path)); //string fileName = path; //MemoryStream workStream = new MemoryStream(); //workStream.Write(fileBytes, 0, fileBytes.Length); //workStream.Position = 0; //return File(workStream.ToArray(), "application/pdf", fileName); //using (MemoryStream pdfStream = new MemoryStream()) //{ // pdfStream.Write(fileBytes, 0, fileBytes.Length); // pdfStream.Position = 0; // return new FIle(pdfStream, "application/pdf"); //} }
public FileContentResult pdf() { string html = string.Empty; string uniqueId = (string)Request.QueryString["a"]; string page = (string)Request.QueryString["page"]; var OS = new OfficeSurveyModel(); var CL = new commonLogic(); var htmlToPdf = new HtmlToPdfConverter(); var pdfContentType = "application/pdf"; try { OS.where = " WHERE unique_id = '" + uniqueId + "'"; CL.dataTable = OS.select(); CL.pageType = page; html = CL.ViewHtml(); string htmlContent = "<!DOCTYPE html><html lang='en'><head><style><style>body{font-family: 'Poppins', sans-serif;}.h5, h5 {font-size: 1rem; }hr{width: 100%;}hr {margin-top: 1rem;margin-bottom: 1rem;border: 0; border-top: 1px solid rgba(0, 0, 0, 0.1);}.col-md-12{width:100%;}.col-sm-8{width:60%; float:left;}.col-sm-4{width:40%;float:right;}</style></style></head><body>" + html + "</body></html>"; //var htmlToPdf = new NReco.PdfGenerator.HtmlToPdfConverter(); htmlToPdf.PageFooterHtml = $@"page <span class=""page""></span> of <span class=""topage""></span>"; var pdfBytes = htmlToPdf.GeneratePdf(htmlContent); string fileName = CL.getFileName(); return(File(pdfBytes, "application/pdf", fileName + ".pdf")); } catch (Exception e) { CL.getLog("Fail to generate PDF." + e); return(File(htmlToPdf.GeneratePdf("<b>Something Went wrong!!!</b>", null), pdfContentType)); } }
public void exportPDF(string fileName, string Orientation, string html) { HtmlToPdfConverter pdf = new HtmlToPdfConverter(); //Remove these control characters, they interfere with the formatting of the pdf document html = html.Replace("\n", ""); html = html.Replace("\t", ""); html = html.Replace("\r", ""); switch (Orientation) { case "Portrait": pdf.Orientation = PageOrientation.Portrait; break; case "Landscape": pdf.Orientation = PageOrientation.Landscape; break; default: pdf.Orientation = PageOrientation.Default; break; } //In case needed for future //pdf.CustomWkHtmlArgs = "--margin-top 35 --header-spacing 0 --margin-left 0 --margin-right 0"; pdf.Margins.Top = 25; pdf.PageFooterHtml = createPDFFooter(); var pdfBytes = pdf.GeneratePdf(createPDFScript() + html + "</body></html>"); HttpContext.Current.Response.ContentType = "application/pdf"; HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8; HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=" + fileName + ".pdf"); HttpContext.Current.Response.BinaryWrite(pdfBytes); HttpContext.Current.Response.Flush(); HttpContext.Current.Response.End(); }
private CustomFileDetails GetTemplatedLicenseForDownload(OrganizationLicense license, int providerOrgId, int consumerOrgId, string urlToSchema) { var result = new CustomFileDetails(); // Get license template var template = _licenseTemplates.FirstOrDefault(i => i.ID == license.LicenseTemplateID.Value); // Get license document var licenseDocument = _licenseContentBuilder.GetLicenseContent(organizationLicenseId: license.ID); // Get schema file var schemaFile = _schemaFiles.FirstOrDefault(i => i.DataSchemaID == license.DataSchemaID); // Build content for templated license _licenseContentBuilder.InsertLicenseDetails(licenseDocument, urlToSchema, _config.DataLinkerHost, providerOrgId, consumerOrgId); // Generate pdf file with content var pdfDocument = new HtmlToPdfConverter { PageFooterHtml = _licenseContentBuilder.GetFooterText(license.Status, _config.DataLinkerHost) }; var bytes = pdfDocument.GeneratePdf(licenseDocument.OuterXml); // Setup result result.Content = bytes; result.MimeType = "application/pdf"; result.FileName = $"{template.Name}.pdf"; // Return result return(result); }
/// <summary> /// The method generates a sample pdf-file /// </summary> public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Document document = db.GetDocumentById(id); if (document == null) { return(HttpNotFound()); } string correctHtml = document.Text; string htm = "<html><head><meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"/><title>Контракт</title></head><body>" + document.Text + "</body></html>"; /// string pattern = @"{{(?<val>.*?)}}"; RegexOptions options = RegexOptions.Compiled | RegexOptions.Singleline; Regex regex = new Regex(pattern, options); Match match = regex.Match(htm); int i = 0; while (match.Success) { correctHtml = correctHtml.Replace("{{" + match.Groups["val"].Value + "}}", "______"); match = match.NextMatch(); i++; } /// var htmlToPdf = new HtmlToPdfConverter(); var pdfBytes = htmlToPdf.GeneratePdf(correctHtml); return(File(pdfBytes, "application/pdf", "df")); }
public static bool gerarPDF(string htmlContent, string filename) { string pathPDF = filename; var htmlToPdf = new HtmlToPdfConverter(); var margins = new PageMargins(); margins.Bottom = 10; // margins.Left = 5;margins.Right = 5; margins.Top = 10; htmlToPdf.Margins = margins; htmlToPdf.CustomWkHtmlPageArgs = "--enable-smart-shrinking --encoding <encoding>"; htmlToPdf.PageFooterHtml = ""; //htmlToPdf.Orientation = NReco.PdfGenerator.PageOrientation.Portrait; htmlToPdf.Zoom = 1.0f; var conteudo = htmlToPdf.GeneratePdf(htmlContent, null); UtilIO.saveBytesToFile(pathPDF, conteudo, FileMode.Create); if (File.Exists(pathPDF)) { return(true); } return(false); }
public ActionResult PrintResult(int?id, int?durid, string fname) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } if (durid == null || fname == "" || fname == null) { var durations = SystemHelper.GetAllCourseDuration((int)id); ViewBag.CourseId = id; ViewBag.durid = new SelectList(durations, "DurationID", "DurationName"); return(View()); } dynamic course = SystemHelper.GetCourseObject((int)id); if (course == null) { return(HttpNotFound()); } var objectName = course.GetType().Name.ToString(); List <StudentRegistration> result = SystemHelper.GetCourseResultRegistrationByFaculty((int)id, (int)durid, fname); string viewName = @"..\Print\" + objectName + "ResultRegistration"; string htmlToConvert = SystemHelper.RenderViewAsString(viewName, result, this.ControllerContext); var htmlToPdf = new HtmlToPdfConverter(); var pdfBytes = htmlToPdf.GeneratePdf(htmlToConvert); FileResult fileResult = new FileContentResult(pdfBytes, "application/pdf") { FileDownloadName = fname + "-" + durid + ".pdf" }; return(fileResult); }
private void printProduct(int productID) { string content = generateContent(loadProduct(productID), loadTemplate("content")); //kreira html var pdfCreator = new HtmlToPdfConverter(); pdfCreator.Margins.Top = 24; pdfCreator.Margins.Bottom = 15; pdfCreator.Margins.Left = 10; pdfCreator.Margins.Right = 10; pdfCreator.Size = NReco.PdfGenerator.PageSize.A4; pdfCreator.PageHeaderHtml = getHeader(); pdfCreator.PageFooterHtml = getFooter(); var pdfBytes = pdfCreator.GeneratePdf(content); using (FileStream fs = new FileStream(Server.MapPath("~/pdf/product.pdf"), FileMode.Create, FileAccess.Write)) { fs.Write(pdfBytes, 0, pdfBytes.Length); fs.Close(); } Response.Redirect(ResolveUrl("~/pdf/product.pdf")); }
public static BinaryFile HtmlToPdf(string html, RockContext rockContext = null, string pdfFileName = "GeneratedPDF.pdf", PageMargins margins = null, PageOrientation orientation = PageOrientation.Default) { if (rockContext == null) { rockContext = new RockContext(); } var htmlToPdf = new HtmlToPdfConverter(); if (margins != null) { htmlToPdf.Margins = margins; } htmlToPdf.Orientation = orientation; using (MemoryStream msPDF = new MemoryStream(htmlToPdf.GeneratePdf(html))) { BinaryFile pdfBinary = new BinaryFile(); pdfBinary.Guid = Guid.NewGuid(); pdfBinary.FileName = pdfFileName; pdfBinary.MimeType = "application/pdf"; pdfBinary.BinaryFileTypeId = new BinaryFileTypeService(rockContext).Get(new Guid(Rock.SystemGuid.BinaryFiletype.DEFAULT)).Id; BinaryFileData pdfData = new BinaryFileData(); pdfData.Content = msPDF.ToArray(); pdfBinary.DatabaseData = pdfData; return(pdfBinary); } }
public HttpResponseMessage DownloadInvoice(PostDataEntity strHTML) { HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK); string fileNames = "Invoice_" + DateTime.Now.ToString("yyyyMMddHHmmss"); try { byte[] bytes;// = new byte[file.Length]; var htmlToPdf = new HtmlToPdfConverter(); if (!String.IsNullOrEmpty(strHTML.htmlString)) { strHTML.htmlString = strHTML.htmlString.Replace("break-after: page", "page-break-after:always"); } bytes = htmlToPdf.GeneratePdf(strHTML.htmlString); response.Content = new ByteArrayContent(bytes); response.Content.Headers.Clear(); response.Content.Headers.Add("Content-Disposition", "attachment; filename=" + fileNames + ".pdf"); response.Content.Headers.Add("Content-Length", bytes.Length.ToString()); response.Content.Headers.ContentType = new MediaTypeHeaderValue(MimeMapping.GetMimeMapping("application/pdf")); return(response); } catch (Exception ex) { // response.Message.Add(ex.Message); } return(response); }
public ActionResult ExportPdf(int quoteId) { var quote = _db.Quotes.First(q => q.Id == quoteId); var user = _db.Users.First(u => u.UserName == quote.AssignedTo); var model = new QuotePdfViewModel() { Quote = quote, User = user }; var htmlContent = this.RenderViewToString("~/Areas/Sales/Views/Shared/PdfQuote2.cshtml", model); var htmlToPdf = new HtmlToPdfConverter { Size = PageSize.A4, Orientation = PageOrientation.Portrait, Zoom = 1.5F }; byte[] pdfBytes = htmlToPdf.GeneratePdf(htmlContent); FileResult fileResult = new FileContentResult(pdfBytes, "application/pdf"); fileResult.FileDownloadName = String.Format("{0}-Ponuda-{1}_{2}.pdf", quote.Organization.SubjectName, /*quote.QuoteLines.First(ql => ql.Service.ServiceType == Service.ServiceTypeEnum.Packages).Service.ServiceName*/ quote.QuoteLines.First(ql => ql.Service.ServiceType == Service.ServiceTypeEnum.Documents).Quantity, quote.ContractDuration); return(fileResult); }
public object GenerateReport(JObject data) { HtmlToPdfConverter test = new HtmlToPdfConverter(); string filedata = File.ReadAllText(System.Web.HttpRuntime.BinDirectory + "substorage.html"); filedata = Regex.Unescape(filedata); filedata = filedata.Replace(@"\", ""); filedata = filedata.Replace("%MaterialCode%", (string)data["materialcode"]); filedata = filedata.Replace("%Quantity%", (string)data["issuequantity"]); filedata = filedata.Replace("%ReqDate%", DateTime.Now.ToString()); using (SqlConnection conn = new SqlConnection()) { conn.ConnectionString = connection; conn.Open(); SqlCommand cmdCount = new SqlCommand("SELECT sub_storage_index from np_config;", conn); filedata = filedata.Replace("%Number%", cmdCount.ExecuteScalar().ToString()); } using (SqlConnection conn = new SqlConnection()) { conn.ConnectionString = connection; conn.Open(); SqlCommand cmdCount = new SqlCommand("SELECT material_description from np_materials WHERE material_code='" + (string)data["materialcode"] + "'; ", conn); filedata = filedata.Replace("%MaterialDate%", (string)cmdCount.ExecuteScalar()); } using (SqlConnection conn = new SqlConnection()) { conn.ConnectionString = connection; conn.Open(); SqlCommand cmdCount = new SqlCommand("SELECT employ_dept_cd from np_employ WHERE employ_pers_no='" + (string)data["issueto"] + "'; ", conn); filedata = filedata.Replace("%Dept", (string)cmdCount.ExecuteScalar() + " "); } using (SqlConnection conn = new SqlConnection()) { conn.ConnectionString = connection; conn.Open(); SqlCommand cmdCount = new SqlCommand("SELECT employ_loc_cd from np_employ WHERE employ_pers_no='" + (string)data["issueto"] + "'; ", conn); filedata = filedata.Replace("Loc%", " " + (string)cmdCount.ExecuteScalar()); } string employname; using (SqlConnection conn = new SqlConnection()) { conn.ConnectionString = connection; conn.Open(); SqlCommand cmdCount = new SqlCommand("SELECT employ_name from np_employ WHERE employ_pers_no='" + (string)data["issueto"] + "'; ", conn); employname = (string)cmdCount.ExecuteScalar(); } filedata = filedata.Replace("%RequistionBy%", (string)data["issueto"] + " - " + employname); var result = new HttpResponseMessage(HttpStatusCode.OK) { Content = new ByteArrayContent(test.GeneratePdf(filedata)) }; result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = "RequistionMan.pdf" }; return(result); }
private void MBckWorker_DoWork(object sender, DoWorkEventArgs e) { try { var explorer = base.Context as Explorer; int i = 1; mMailCount = explorer.CurrentFolder.Items.Count; foreach (var item in explorer.CurrentFolder.Items) { if (!(item is MailItem)) { continue; } var mail = item as MailItem; if (string.IsNullOrEmpty(mail.HTMLBody)) { continue; } var fileName = Path.Combine(DIR_PDF, string.Format(@"{0}_{1}.pdf", mail.ReceivedTime.ToString("yyyyMMddHHmmss"), mail.Subject)); var html = @"<?xml version=""1.0"" encoding=""UTF-8""?> <!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.0 Strict//EN"" ""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd""> <html xmlns=""http://www.w3.org/1999/xhtml"" xml:lang=""en"" lang=""en""> <head> <title>Minimal XHTML 1.0 Document with W3C DTD</title> </head> <body> " + mail.HTMLBody + "</body></html>"; var pdfDoc = new HtmlToPdfConverter { Margins = new PageMargins { Bottom = 50, Left = 50, Right = 50, Top = 50 }, Size = PageSize.A4, PageHeaderHtml = string.Format(@"<h1>{0}</h1><h4>{1}({2})</h4><h5>收件时间:{3}</h5>", mail.Subject, mail.SenderName, mail.SenderEmailAddress, mail.ReceivedTime), PageFooterHtml = string.Format(@"<h3><a href='http://www.mln.com'>{0}</a></h3>", "@Power by Mln.COM") }; var pdfBytes = pdfDoc.GeneratePdf(html); using (var file = new FileStream(fileName, FileMode.Create)) { file.Write(pdfBytes, 0, (int)pdfBytes.Length); } mBckWorker.ReportProgress(i++); } e.Result = ""; } catch (Exception ex) { e.Result = ex.Message; } }
public void GenerateFileByStringAndCover() { const string fileName = "GenerateFileByStringAndCover.pdf"; HtmlToPdfConverter generator = new HtmlToPdfConverter(); generator.GeneratePdf(HTML_CONTENT, HTML_CONTENT_COVER, Path.Combine(PDF_DIRECTORY, fileName)); }
public ActionResult getPdf1(int ID) { var q = _paymentRepository.GetPayment(ID); var s = RenderViewToString(ControllerContext, "doc1", q); var pdfConv = new HtmlToPdfConverter(); var pdf = pdfConv.GeneratePdf(s); return(File(pdf, "application/pdf", "Поручение.pdf")); }
public ActionResult getPdf2(int ID) { var q = enregRepository.GetPayment(ID); var s = RenderViewToString(ControllerContext, "..\\payment\\doc2", q); var pdfConv = new HtmlToPdfConverter(); var pdf = pdfConv.GeneratePdf(s); return(File(pdf, "application/pdf", "Рапоряжение.pdf")); }
public void GenerateByteArrayByStringAndCover() { const string fileName = "GenerateByteArrayByStringAndCover.pdf"; HtmlToPdfConverter generator = new HtmlToPdfConverter(); byte[] pdfByteArray = generator.GeneratePdf(HTML_CONTENT, HTML_CONTENT_COVER); File.WriteAllBytes(Path.Combine(PDF_DIRECTORY, fileName), pdfByteArray); }
public static byte[] HtmlToPdf(string html) { var converter = new HtmlToPdfConverter { CustomWkHtmlPageArgs = " --no-stop-slow-scripts" + " --javascript-delay 5000" + " --disable-smart-shrinking" }; return(converter.GeneratePdf(ResolveImageUrls(html))); }
public byte[] Translate(string bodyHtml) { var pdfConverter = new HtmlToPdfConverter { LowQuality = false, PageHeaderHtml = HeaderFormat, PageFooterHtml = FooterFormat }; return(pdfConverter.GeneratePdf(bodyHtml)); }
// generar imagenes public byte[] generarReporte(string rutaPlantilla, string rutaPlantillaHeader, object data, string footer) { try { if (!string.IsNullOrEmpty(rutaPlantilla) && File.Exists(rutaPlantilla)) { var htmlToPdf = new HtmlToPdfConverter(); string plantillaHtmlHeader = string.Empty; string plantillaHtml = string.Empty; using (StreamReader reader = new StreamReader(rutaPlantilla)) { plantillaHtml = reader.ReadToEnd(); reader.Close(); } using (StreamReader reader = new StreamReader(rutaPlantillaHeader)) { plantillaHtmlHeader = reader.ReadToEnd(); reader.Close(); } if (data != null) { foreach (var propertyInfo in data.GetType() .GetProperties( BindingFlags.Public | BindingFlags.Instance)) { string nombre = propertyInfo.Name; string valor = propertyInfo.GetValue(data, null) == null ? string.Empty : propertyInfo.GetValue(data, null).ToString().Replace("\n", "<br/>") .Replace("á", "á").Replace("é", "é").Replace("í", "í").Replace("ó", "ó").Replace("ú", "ú") .Replace("Á", "á").Replace("É", "é").Replace("Í", "í").Replace("Ó", "ó").Replace("Ú", "ú") .Replace("Ñ", "ñ").Replace("ñ", "ñ") ; plantillaHtml = plantillaHtml.Replace("{{" + nombre + "}}", valor); plantillaHtmlHeader = plantillaHtmlHeader.Replace("{{" + nombre + "}}", valor); } } htmlToPdf.PageHeaderHtml = plantillaHtmlHeader; htmlToPdf.PageFooterHtml = (!string.IsNullOrEmpty(footer))?footer: "<div style=\"font-size: 11px; border-top:1px solid grey;font-family:Arial, Helvetica, sans-serif;letter-spacing:1pt;padding:15px 12px\">Clínica Ricardo Palma RENIPRESS: 00009409</div>"; return(htmlToPdf.GeneratePdf(plantillaHtml, null)); } } catch (Exception e) { log.Error("ERROR MOSTRANDO REPORTE FAT__" + e.Source + "___" + e.ToString()); } return(null); }
public byte[] ConvertHtmlToPdf(string html) { var converter = new HtmlToPdfConverter(); //converter.Quiet = false; //converter.LogReceived += (sender, e) => //{ // Debug.WriteLine("WkHtmlToPdf Log: {0}", e.Data); //}; return(converter.GeneratePdf(html)); }
public void GenerateStreamByStringAndCover() { const string fileName = "GenerateStreamByStringAndCover.pdf"; using (MemoryStream stream = new MemoryStream()) { HtmlToPdfConverter generator = new HtmlToPdfConverter(); generator.GeneratePdf(HTML_CONTENT, HTML_CONTENT_COVER, stream); File.WriteAllBytes(Path.Combine(PDF_DIRECTORY, fileName), stream.ToArray()); } }
/// <summary> /// Method which saves the PDF file in the folder /// </summary> /// <param name="path">Path where we will save the PDF file</param> /// <param name="htmlContent">HTML document with data</param> public void SavePdfQuote(string path, string htmlContent) { var htmlToPdf = new HtmlToPdfConverter { Size = PageSize.A4, Orientation = PageOrientation.Portrait, Zoom = 1.5F }; byte[] pdfBytes = htmlToPdf.GeneratePdf(htmlContent); System.IO.File.WriteAllBytes(System.IO.Path.Combine(path + "/Ponuda_" + DateTime.Now.ToFileTime() + ".pdf"), pdfBytes); }
public ActionResult GeneratePdf(string htmlContent, string htmlUrl) { var htmlToPdf = new HtmlToPdfConverter(); var pdfContentType = "application/pdf"; if (!String.IsNullOrEmpty(htmlUrl)) { try { return(File(htmlToPdf.GeneratePdfFromFile(htmlUrl, null), pdfContentType)); } catch (Exception ex) { return(File(htmlToPdf.GeneratePdf("<span style='color:red'><strong> DOMAIN NOT FOUND </strong></span>", null), pdfContentType)); } } else { return(File(htmlToPdf.GeneratePdf(htmlContent, null), pdfContentType)); } }
public static byte[] GeneratePdf(object model, string path) { HtmlToPdfConverter converter = new HtmlToPdfConverter(); converter.Margins = new PageMargins() { Bottom = 5, Top = 5, Left = 5, Right = 5 }; converter.PdfToolPath = path; var html = GenerateHtml(model); return(converter.GeneratePdf(html)); }
private byte[] CreatePdfDoc(string html) { HtmlToPdfConverter htmlConverter = new HtmlToPdfConverter(); var res = htmlConverter.GeneratePdf(html); //byte[] res = null; //using (MemoryStream ms = new MemoryStream()) //{ // var pdf = PdfGenerator.GeneratePdf(html, PdfSharp.PageSize.A4); // pdf.Save(ms); // res = ms.ToArray(); //} return(res); }
public ActionResult GeneratePdf(string htmlContent, string htmlUrl) { var htmlToPdf = new HtmlToPdfConverter(); var pdfContentType = "application/pdf"; if (!String.IsNullOrEmpty(htmlUrl)) { return(File(htmlToPdf.GeneratePdfFromFile(htmlUrl, null), pdfContentType)); } else { return(File(htmlToPdf.GeneratePdf(htmlContent, null), pdfContentType)); } }
public ActionResult DownloadRegistrationForm(int?id, int?rid) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } dynamic course = SystemHelper.GetCourseObject((int)id); if (course == null) { return(HttpNotFound()); } var objectName = course.GetType().Name.ToString(); string viewName = @"..\Print\" + objectName + "Registration"; string fileName = objectName + "Registration.pdf"; int? registrationId = rid; if (rid == null && Session["UserId"] != null) { registrationId = (int)Session["UserId"]; } dynamic student = null; if (objectName == typeof(Tarbea).Name.ToString()) { student = SystemHelper.GetTarbeaRegistrationData((int)registrationId, (int)id); } /** * Add Else If Here For More Course Registration Print * * */ if (student == null) { ViewBag.Message = "برجاء التسجيل اولا للتسجيل <a href='/Student/CourseRegistration/" + id + "'> اضغط هنا </a>"; return(View("Message")); } string htmlToConvert = SystemHelper.RenderViewAsString(viewName, student, this.ControllerContext); var htmlToPdf = new HtmlToPdfConverter(); var pdfBytes = htmlToPdf.GeneratePdf(htmlToConvert); FileResult fileResult = new FileContentResult(pdfBytes, "application/pdf") { FileDownloadName = registrationId + "-" + fileName }; return(fileResult); }
public ActionResult DownloadResultForm(int?id, int?rid) { if (id == null || rid == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } dynamic course = SystemHelper.GetCourseObject((int)id); if (course == null) { return(HttpNotFound()); } var objectName = course.GetType().Name.ToString(); string viewName = @"..\Print\" + objectName + "StudentResult"; string fileName = objectName + "Result.pdf"; int registrationId = (int)rid; dynamic result = null; if (objectName == typeof(Tarbea).Name.ToString()) { result = SystemHelper.GetCourseStudentResult(registrationId, (int)id); } /** * Add Else If Here For More Course Registration Print * * */ if (result == null) { ViewBag.Message = "لم يتم ظهور النتيجة بعد"; return(View("Message")); } if (result.ResultName == "راسب") { ViewBag.Message = "لم يتم اجتياز الدورة بنجاح"; return(View("Message")); } string htmlToConvert = SystemHelper.RenderViewAsString(viewName, result, this.ControllerContext); var htmlToPdf = new HtmlToPdfConverter(); var pdfBytes = htmlToPdf.GeneratePdf(htmlToConvert); FileResult fileResult = new FileContentResult(pdfBytes, "application/pdf") { FileDownloadName = registrationId + "-" + fileName }; return(fileResult); }
public static void GeneratePDFFile(string content, string outputFile, string header = "", string footer = "") { HtmlToPdfConverter obj = new HtmlToPdfConverter(); obj.Orientation = PageOrientation.Portrait; obj.Size = PageSize.Letter; var margin = new PageMargins(); margin.Left = 5; margin.Right = 5; margin.Top = 5; margin.Bottom = 5; if (header == string.Empty) { obj.PageHeaderHtml = @"<div style='height: 50px; font-size:30px color:white'> Adding Header</div>"; } else { obj.PageFooterHtml = header; } if (footer == string.Empty) { obj.PageFooterHtml = @"<div style='height: 50px; font-size:30px; color:white'> Adding Header</div>"; } else { margin.Bottom = 8; obj.PageFooterHtml = footer; } obj.Margins = margin; string outPDFFile = outputFile; try { byte[] outPdfBuffer = obj.GeneratePdf(content); File.WriteAllBytes(outPDFFile, outPdfBuffer); GC.Collect(); } catch (Exception ex) { throw ex; } }
public ActionResult Registration(int? id) { var workStream = new MemoryStream(); // get the record to which this registation id belongs to using (var session = NHibernateHelper.CreateSessionFactory()) { using (var transaction = session.BeginTransaction()) { // get the html template content var path = System.Web.Hosting.HostingEnvironment.MapPath("~/App_Data/templates/registration.html"); var htmlContent = System.IO.File.ReadAllText(path); var registrations = new List<Registration>(session.CreateCriteria(typeof (Registration)).List<Registration>()); var r = registrations.FirstOrDefault(x => x.Id == id); // do string replacements to htmlContent here var parsedHtmlContent = htmlContent; // Head details if (r != null) { parsedHtmlContent = Replacement(parsedHtmlContent, "$$BootstrapCss$$", BootstrapCss); parsedHtmlContent = Replacement(parsedHtmlContent, "$$PHERMC_REG_NO$$", r.PhermcRegistrationNumber); parsedHtmlContent = Replacement(parsedHtmlContent, "$$LAST_RENEWAL_DATE$$", r.LastRenewalDate.HasValue ? r.LastRenewalDate.Value.ToString("dd/MM/yyyy") : ""); parsedHtmlContent = Replacement(parsedHtmlContent, "$$CAC_NUMBER$$", r.CacNumber); parsedHtmlContent = Replacement(parsedHtmlContent, "$$REGISTRATION_DATE$$", r.RegistrationDate.ToString("dd/MM/yyyy")); // Proprietor details parsedHtmlContent = Replacement(parsedHtmlContent, "$$PROPRIETOR_NAME$$", string.Concat(r.ProprietorFirstName, " ", r.ProprietorLastName)); parsedHtmlContent = Replacement(parsedHtmlContent, "$$PROPRIETOR_GENDER_MALE$$", r.ProprietorGender.Equals("Male") ? "X" : ""); parsedHtmlContent = Replacement(parsedHtmlContent, "$$PROPRIETOR_GENDER_FEMALE$$", r.ProprietorGender.Equals("Female") ? "X" : ""); parsedHtmlContent = Replacement(parsedHtmlContent, "$$PROPRIETOR_NIN_NUMBER$$", r.ProprietorNinNumber); parsedHtmlContent = Replacement(parsedHtmlContent, "$$PROPRIETOR_MOBILE1$$", r.ProprietorMobile1); parsedHtmlContent = Replacement(parsedHtmlContent, "$$PROPRIETOR_MOBILE2$$", r.ProprietorMobile2); parsedHtmlContent = Replacement(parsedHtmlContent, "$$PROPRIETOR_EMAIL$$", r.ProprietorEmailAddress); parsedHtmlContent = Replacement(parsedHtmlContent, "$$PROPRIETOR_IS_MD_NO$$", !r.ProprietorIsMedicalDirector ? "X" : ""); parsedHtmlContent = Replacement(parsedHtmlContent, "$$PROPRIETOR_IS_MD_YES$$", r.ProprietorIsMedicalDirector ? "X" : ""); // Medical Director details parsedHtmlContent = Replacement(parsedHtmlContent, "$$MD_NAME$$", string.Concat(r.MedicalDirectorFirstName, " ", r.MedicalDirectorLastName)); parsedHtmlContent = Replacement(parsedHtmlContent, "$$MD_GENDER_MALE$$", r.MedicalDirectorGender == null ? "" : r.MedicalDirectorGender.Equals("Male") ? "X" : ""); parsedHtmlContent = Replacement(parsedHtmlContent, "$$MD_GENDER_FEMALE$$", r.MedicalDirectorGender == null ? "" : r.MedicalDirectorGender.Equals("Female") ? "X" : ""); parsedHtmlContent = Replacement(parsedHtmlContent, "$$MD_NIN_NUMBER$$", r.MedicalDirectorNinNumber); parsedHtmlContent = Replacement(parsedHtmlContent, "$$MD_MOBILE1$$", r.MedicalDirectorMobile1); parsedHtmlContent = Replacement(parsedHtmlContent, "$$MD_MOBILE2$$", r.MedicalDirectorMobile2); parsedHtmlContent = Replacement(parsedHtmlContent, "$$MD_EMAIL$$", r.MedicalDirectorEmailAddress); // Establishment details parsedHtmlContent = Replacement(parsedHtmlContent, "$$ESTABLISHMENT_NAME$$", r.EstablishmentName); parsedHtmlContent = Replacement(parsedHtmlContent, "$$ESTABLISHMENT_TYPE_HOSPITAL$$", r.TypeOfEstablishment.Equals("Hospital") ? "X" : ""); parsedHtmlContent = Replacement(parsedHtmlContent, "$$ESTABLISHMENT_TYPE_CLINIC$$", r.TypeOfEstablishment.Equals("Clinic") ? "X" : ""); parsedHtmlContent = Replacement(parsedHtmlContent, "$$ESTABLISHMENT_TYPE_LABARATORY$$", r.TypeOfEstablishment.Equals("Laboratory") ? "X" : ""); parsedHtmlContent = Replacement(parsedHtmlContent, "$$ESTABLISHMENT_TYPE_MATERNITY$$", r.TypeOfEstablishment.Equals("Marernity") ? "X" : ""); parsedHtmlContent = Replacement(parsedHtmlContent, "$$ESTABLISHMENT_TYPE_PHYSIOTHERAPY$$", r.TypeOfEstablishment.Equals("Physiotherapy") ? "X" : ""); parsedHtmlContent = Replacement(parsedHtmlContent, "$$ESTABLISHMENT_TYPE_RADIODIAGNOSTIC$$", r.TypeOfEstablishment.Equals("Radiodiagnostic") ? "X" : ""); parsedHtmlContent = Replacement(parsedHtmlContent, "$$ESTABLISHMENT_TYPE_OTHER$$", r.TypeOfEstablishment.Equals("Other") ? "X" : ""); parsedHtmlContent = Replacement(parsedHtmlContent, "$$ESTABLISHMENT_TYPE_OTHER_NAME$$", r.TypeOfEstablishment.Equals("Hospital") ? "X" : ""); // Establishment address parsedHtmlContent = Replacement(parsedHtmlContent, "$$ESTABLISHMENT_ADDRESS$$", string.Concat(r.AddressLine1, " ", r.AddressLine2)); parsedHtmlContent = Replacement(parsedHtmlContent, "$$ESTABLISHMENT_LGA$$", r.Lga); parsedHtmlContent = Replacement(parsedHtmlContent, "$$ESTABLISHMENT_LANDMARK$$", r.LandMark); // Numbers of staff /* var staffing = new StringBuilder(); for (var i = 0; i < r.RegistrationStaffing.Count; i++) { var staff = r.RegistrationStaffing[i]; staffing.AppendFormat("{0} {1}", staff.NumberOfStaff, staff.Staffing.Name); if (i >= 0 && i < r.RegistrationStaffing.Count - 1) { staffing.Append(", "); } } parsedHtmlContent = Replacement(parsedHtmlContent, "$$STAFFING_PROFILE$$", staffing.ToString()); */ // Services var services = new StringBuilder(); for (var i = 0; i < r.RegistrationServices.Count; i++) { var service = r.RegistrationServices[i]; services.AppendFormat("{0} {1}", service.Selected, service.Service.Name); if (i >= 0 && i < r.RegistrationServices.Count - 1) { services.Append(", "); } } parsedHtmlContent = Replacement(parsedHtmlContent, "$$SERVICES$$", services.ToString()); // Administrator details parsedHtmlContent = Replacement(parsedHtmlContent, "$$ADMIN_NAME$$", string.Concat(r.AdministratorFirstName, " ", r.AdministratorLastName)); parsedHtmlContent = Replacement(parsedHtmlContent, "$$ADMIN_MOBILE1$$", r.AdministratorMobile1); parsedHtmlContent = Replacement(parsedHtmlContent, "$$ADMIN_MOBILE2$$", r.AdministratorMobile2); // Professional Body details parsedHtmlContent = Replacement(parsedHtmlContent, "$$PBODY_ATT_20$$", r.ProfessionalBodyAttendance.Equals("20 Units") ? "X" : ""); parsedHtmlContent = Replacement(parsedHtmlContent, "$$PBODY_ATT_LESS20$$", r.ProfessionalBodyAttendance.Equals("Less than 20 Units") ? "X" : ""); parsedHtmlContent = Replacement(parsedHtmlContent, "$$PBODY_ATT_NOTATALL$$", r.ProfessionalBodyAttendance.Equals("Not at all") ? "X" : ""); parsedHtmlContent = Replacement(parsedHtmlContent, "$$PBODY_INVOLVE_REGULAR$$", r.ProfessionalBodyInvolvement.Equals("Regular") ? "X" : ""); parsedHtmlContent = Replacement(parsedHtmlContent, "$$PBODY_INVOLVE_IRREGULAR$$", r.ProfessionalBodyInvolvement.Equals("Irregular") ? "X" : ""); parsedHtmlContent = Replacement(parsedHtmlContent, "$$PBODY_INVOLVE_NOT$$", r.ProfessionalBodyInvolvement.Equals("Not Involved") ? "X" : ""); parsedHtmlContent = Replacement(parsedHtmlContent, "$$PBODY_NAME$$", string.Concat(r.ProfessionalBodyFirstName, " ", r.ProfessionalBodyLastName)); parsedHtmlContent = Replacement(parsedHtmlContent, "$$PBODY_POSITION$$", r.ProfessionalBodyPosition); parsedHtmlContent = Replacement(parsedHtmlContent, "$$PBODY_REMARKS$$", r.ProfessionalBodyRemarks); // Acceptance details parsedHtmlContent = Replacement(parsedHtmlContent, "$$ACCEPTANCE_NO$$", !r.AcceptanceDetailsAccepted ? "X" : ""); parsedHtmlContent = Replacement(parsedHtmlContent, "$$ACCEPTANCE_YES$$", r.AcceptanceDetailsAccepted ? "X" : ""); parsedHtmlContent = Replacement(parsedHtmlContent, "$$ACCEPTANCE_REASON$$", r.AcceptanceDetailsReason); // create instance of pdf api var htmlToPdf = new HtmlToPdfConverter(); // convert theget a byte array var pdfBytes = htmlToPdf.GeneratePdf(parsedHtmlContent); var byteInfo = pdfBytes; workStream.Write(byteInfo, 0, byteInfo.Length); workStream.Position = 0; } } } //return new FileStreamResult(workStream, "application/pdf"); return File(workStream, "application/pdf", string.Format("Establishment_{0}_{1}.pdf", id, DateTime.Now.ToString("yyyyMMddhhmmss")) ); }
public void A_Pdf_Is_Generated() { //Arange string html = @"<div class='row'> <div> <div> <table> <thead> <tr> <th></th> <th>titel</th> <th></th> </tr> </thead> <tbody> <tr> <td></td> <td>1</td> <td></td> </tr> </tbody> </table> </div> </div> <div> <div> <div> <div> Voornaam Achternaam </div> <div> <a>save</a> </div> </div> <div> <div> <h5>Omschrijving</h5> <table> <thead> <tr> <th>Omschrijving:</th> <th>Gewicht</th> <th>Score</th> <th>?</th> <th>---</th> </tr> </thead> <tbody> <tr> <td>doel omschrijving</td> <td>20</td> <td> <a>3</a> </td> <td> <div> Andere taak </div> </td> <td></td> </tr> <tr> <td>doel omschrijving</td> <td>20</td> <td> <a>3</a> </td> <td> <div> Afwezig </div> </td> <td></td> </tr> <tr> <td>doel omschrijving</td> <td>20</td> <td> <a>3</a> </td> <td> <div> Andere taak </div> </td> <td></td> </tr> </tbody> <tfoot> <tr> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> </tfoot> </table> </div> <div>Totaal: ??</div> <div> <div> Opmerking:</div> <div> <textarea></textarea> </div> </div> </div> </div> </div> </div>"; string filename = @"C:\temp\pdftest.pdf"; var pdfConverter = new HtmlToPdfConverter(); pdfConverter.Orientation = PageOrientation.Landscape; //Act pdfConverter.GeneratePdf(html,null, filename); // bool success = SaveData(filename, pdfbytes); ////Assert //Assert.True(success); //Assert // no assert assert = no error }
public ActionResult Receipt(int? id) { var workStream = new MemoryStream(); // get the record to which this registation id belongs to using (var session = NHibernateHelper.CreateSessionFactory()) { using (var transaction = session.BeginTransaction()) { // get the html template content var path = System.Web.Hosting.HostingEnvironment.MapPath("~/App_Data/templates/receipt.html"); var htmlContent = System.IO.File.ReadAllText(path); var registrations = new List<Renewal>(session.CreateCriteria(typeof(Renewal)).List<Renewal>()); var ts = new List<Transaction>(session.CreateCriteria(typeof(Transaction)).List<Transaction>()); var t = ts.FirstOrDefault(x => x.Id == id); var r = t.Renewal.Registration; // do string replacements to htmlContent here var parsedHtmlContent = htmlContent; // Head details if (r != null) { parsedHtmlContent = Replacement(parsedHtmlContent, "$$BootstrapCss$$", BootstrapCss); parsedHtmlContent = Replacement(parsedHtmlContent, "$$PHERMC_REG_NO$$", r.PhermcRegistrationNumber); var lastRenewalDate = r.LastRenewalDate == null || r.LastRenewalDate.Equals(DateTime.MinValue) ? "" : r.LastRenewalDate.Value.ToString("dd/MM/yyyy"); parsedHtmlContent = Replacement(parsedHtmlContent, "$$ESTABLISHMENT_NAME$$", r.EstablishmentName); parsedHtmlContent = Replacement(parsedHtmlContent, "$$CAC_NUMBER$$", r.CacNumber); parsedHtmlContent = Replacement(parsedHtmlContent, "$$REGISTRATION_DATE$$", r.RegistrationDate.ToString("dd/MM/yyyy")); // create $$TBODY_CONTENT$$ here var totalPaid = 0.0M; var tbodyRows = new StringBuilder(); var payments = t.Renewal.Transactions; if (payments.Any()) { foreach (var p in payments) { totalPaid += p.Amount; } } var lastPayment = t; var receiptTitle = "PAYMENT RECEIPT"; if (lastPayment.Printed) { receiptTitle = "COPY OF RECEIPT"; } parsedHtmlContent = Replacement(parsedHtmlContent, "$$RECEIPT_TITLE$$", receiptTitle); tbodyRows.Append("<tr>"); tbodyRows.AppendFormat("<td>{0}</td>", lastPayment.Date.ToString("dd/MM/yyyy")); tbodyRows.AppendFormat("<td>{0}</td>", lastPayment.PaymentType.Name); tbodyRows.AppendFormat("<td>{0}</td>", ""); tbodyRows.AppendFormat("<td>{0}</td>", lastPayment.ReceivedFrom); tbodyRows.AppendFormat("<td>{0}</td>", lastPayment.ReceivedBy.Username); tbodyRows.AppendFormat("<td class=\"right\">₦{0}</td>", lastPayment.Amount.ToString("#,##0.00")); tbodyRows.Append("</tr>"); parsedHtmlContent = Replacement(parsedHtmlContent, "$$TBODY_CONTENT$$", tbodyRows.ToString()); // Update totals parsedHtmlContent = Replacement(parsedHtmlContent, "$$TOTAL$$", lastPayment.Amount.ToString("N2")); parsedHtmlContent = Replacement(parsedHtmlContent, "$$TOTAL_DUE$$", t.Renewal.Amount.ToString("#,##0.00")); var amountOutstanding = t.Renewal.Amount - totalPaid; parsedHtmlContent = Replacement(parsedHtmlContent, "$$OUTSTANDING$$", amountOutstanding.ToString("#,##0.00")); // create instance of pdf api var htmlToPdf = new HtmlToPdfConverter(); // convert theget a byte array var pdfBytes = htmlToPdf.GeneratePdf(parsedHtmlContent); var byteInfo = pdfBytes; workStream.Write(byteInfo, 0, byteInfo.Length); workStream.Position = 0; lastPayment.Printed = true; transaction.Commit(); } } } return File(workStream, "application/pdf", string.Format("Receipt_{0}_{1}.pdf", id, DateTime.Now.ToString("yyyyMMddhhmmss"))); }
/// <summary> /// Converts html into PDF using nReco dll and wkhtmltopdf.exe. /// </summary> private byte[] ConvertHtmlToPDF() { HtmlToPdfConverter nRecohtmltoPdfObj = new HtmlToPdfConverter(); nRecohtmltoPdfObj.Orientation = PageOrientation.Portrait; nRecohtmltoPdfObj.PageFooterHtml = CreatePDFFooter(); nRecohtmltoPdfObj.CustomWkHtmlArgs = "--margin-top 35 --header-spacing 0 --margin-left 0 --margin-right 0"; return nRecohtmltoPdfObj.GeneratePdf(CreatePDFScript() + ShowHtml() + "</body></html>"); }
public ActionResult ReceiptX(int? id) { var workStream = new MemoryStream(); // get the record to which this registation id belongs to using (var session = NHibernateHelper.CreateSessionFactory()) { using (var transaction = session.BeginTransaction()) { // get the html template content var path = System.Web.Hosting.HostingEnvironment.MapPath("~/App_Data/templates/receipt.html"); var htmlContent = System.IO.File.ReadAllText(path); var registrations = new List<Registration>(session.CreateCriteria(typeof(Registration)).List<Registration>()); var r = registrations.FirstOrDefault(x => x.Id == id); // do string replacements to htmlContent here var parsedHtmlContent = htmlContent; // Head details if (r != null) { parsedHtmlContent = Replacement(parsedHtmlContent, "$$BootstrapCss$$", BootstrapCss); parsedHtmlContent = Replacement(parsedHtmlContent, "$$PHERMC_REG_NO$$", r.PhermcRegistrationNumber); parsedHtmlContent = Replacement(parsedHtmlContent, "$$LAST_RENEWAL_DATE$$", r.LastRenewalDate.Value.ToString("dd/MM/yyyy")); parsedHtmlContent = Replacement(parsedHtmlContent, "$$CAC_NUMBER$$", r.CacNumber); parsedHtmlContent = Replacement(parsedHtmlContent, "$$REGISTRATION_DATE$$", r.RegistrationDate.ToString("dd/MM/yyyy")); // create $$TBODY_CONTENT$$ here var totalPaid = 0.0M; var tbodyRows = new StringBuilder(); var payments = new List<Payment>(session.CreateCriteria(typeof(Payment)).List<Payment>()); var paymentEntries = from x in payments where x.Registration.Id == id select x; if (paymentEntries.Any()) { foreach (var p in paymentEntries) { totalPaid += p.AmountPaid; } } var lastPayment = paymentEntries.LastOrDefault(); tbodyRows.Append("<tr>"); tbodyRows.AppendFormat("<td>{0}</td>", lastPayment.Created.ToString("dd/MM/yyyy")); tbodyRows.AppendFormat("<td>{0}</td>", lastPayment.PaymentMethod); tbodyRows.AppendFormat("<td>{0}</td>", lastPayment.ReferenceNumber); tbodyRows.AppendFormat("<td>{0}</td>", lastPayment.ReceivedFrom); tbodyRows.AppendFormat("<td>{0}</td>", lastPayment.ReceivedByName); tbodyRows.AppendFormat("<td class=\"right\">₦{0}</td>", lastPayment.AmountPaid.ToString("#,##0.00")); tbodyRows.Append("</tr>"); parsedHtmlContent = Replacement(parsedHtmlContent, "$$TBODY_CONTENT$$", tbodyRows.ToString()); // Update totals parsedHtmlContent = Replacement(parsedHtmlContent, "$$TOTAL$$", lastPayment.AmountPaid.ToString("N2")); parsedHtmlContent = Replacement(parsedHtmlContent, "$$TOTAL_DUE$$", r.RegistrationCosts.ToString("#,##0.00")); var amountOutstanding = r.RegistrationCosts - totalPaid; parsedHtmlContent = Replacement(parsedHtmlContent, "$$OUTSTANDING$$", amountOutstanding.ToString("#,##0.00")); // create instance of pdf api var htmlToPdf = new HtmlToPdfConverter(); // convert theget a byte array var pdfBytes = htmlToPdf.GeneratePdf(parsedHtmlContent); var byteInfo = pdfBytes; workStream.Write(byteInfo, 0, byteInfo.Length); workStream.Position = 0; } } } return new FileStreamResult(workStream, "application/pdf"); }