public string GenerateTextTemplateHtml(TemplatePayloadDomain payload, string name) { string text = payload.Text; ICollection <TemplatePlaceholderDomain> placeholders = payload.Placeholders; StringBuilder strHTMLBuilder = new StringBuilder(); strHTMLBuilder.Append("<html>"); strHTMLBuilder.Append("<title>"); strHTMLBuilder.Append(name); strHTMLBuilder.Append("</title>"); strHTMLBuilder.Append("<body>"); strHTMLBuilder.Append("<h1>"); strHTMLBuilder.Append(name); strHTMLBuilder.Append("</h1>"); strHTMLBuilder.Append("<form>"); string[] lines = Regex.Split(text, REGEX_PLACEHOLDER_DEFAULT); foreach (var line in lines) { if (Regex.IsMatch(line, REGEX_PLACEHOLDER_DEFAULT)) { TemplatePlaceholderDomain placeholderDomain = placeholders.First(obj => { return(obj.Id.ToString() == line.Trim('#')); }); strHTMLBuilder.Append("<input type=\"" + placeholderDomain.Type.ToString("g") + "\" name=\"" + placeholderDomain.Id.ToString() + "\" value=\"" + placeholderDomain.Description + "\">"); } else if (line.Contains("\n")) { strHTMLBuilder.Append(line); strHTMLBuilder.Append("<br>"); } else { strHTMLBuilder.Append(line); } } strHTMLBuilder.Append("</form>"); strHTMLBuilder = _htmlGeneratorHelper.GenerateClosingTags(strHTMLBuilder); string Htmltext = strHTMLBuilder.ToString(); return(Htmltext); }
public byte[] GenerateTextTemplatePdf(TemplatePayloadDomain payload, string name) { string text = payload.Text; ICollection <TemplatePlaceholderDomain> placeholders = payload.Placeholders; byte[] output; MemoryStream stream = new MemoryStream(); Document document = new Document(); PdfWriter writer = PdfWriter.GetInstance(document, stream); document.Open(); Font font10 = FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 30); var paragraph1 = new Paragraph(name, font10); paragraph1.Alignment = Element.ALIGN_CENTER; Font font5 = FontFactory.GetFont(FontFactory.HELVETICA, 12); var paragraph2 = new Paragraph("", font5); paragraph2.SpacingBefore = 50f; string[] lines = Regex.Split(text, REGEX_PLACEHOLDER_DEFAULT); foreach (var line in lines) { if (Regex.IsMatch(line, REGEX_PLACEHOLDER_DEFAULT)) { TemplatePlaceholderDomain placeholderDomain = placeholders.First(obj => { return(obj.Id.ToString() == line.Trim('#')); }); string place = new string('_', placeholderDomain.Length); paragraph2.Add(place); paragraph2.Add("("); paragraph2.Add(placeholderDomain.Description); paragraph2.Add(")"); } else { paragraph2.Add(line); } } document.Add(paragraph1); document.Add(paragraph2); document.Close(); output = stream.ToArray(); return(output); }