ByteScout PDF SDK - C# - Convert Text Email to PDF - ByteScout

ByteScout PDF SDK – C# – Convert Text Email to PDF

  • Home
  • /
  • Articles
  • /
  • ByteScout PDF SDK – C# – Convert Text Email to PDF

How to convert text email to PDF in C# using ByteScout PDF SDK

How to code in C# to convert text email to PDF with this step-by-step tutorial

These sample source codes on this page below are demonstrating how to convert text email to PDF in C#. ByteScout PDF SDK: the SDK for pdf documents generation, modification and updates. Can also generate and fill PDF forms. Provides support for text (fonts, style, size, font family), layers, pdf form fields, vector and raster drawings. It can convert text email to PDF in C#.

You will save a lot of time on writing and testing code as you may just take the C# code from ByteScout PDF SDK for convert text email to PDF below and use it in your application. Just copy and paste the code into your C# application’s code and follow the instruction. Further enhancement of the code will make it more vigorous.

Trial version of ByteScout PDF SDK is available for free. Source code samples are included to help you with your C# app.

Try ByteScout PDF SDK today: Get 60 Day Free Trial or sign up for Web API

Program.cs
      
using Bytescout.PDF.Converters; using System; using System.Collections.Generic; using System.Diagnostics; using System.Drawing.Printing; using System.Text; namespace EmailToPDF_TextEmail { class Program { static void Main(string[] args) { try { Console.WriteLine("Please wait while PDF is being created..."); // Parse MessageContents using MsgReader Library // MsgReader library can be obtained from: https://github.com/Sicos1977/MSGReader using (var msg = new MsgReader.Outlook.Storage.Message("TxtSampleEmail.msg")) { // Get Sender information var from = msg.GetEmailSender(false, false); // Message sent datetime var sentOn = msg.SentOn; // Recipient To information var recipientsTo = msg.GetEmailRecipients(MsgReader.Outlook.RecipientType.To, false, false); // Recipient CC information var recipientsCc = msg.GetEmailRecipients(MsgReader.Outlook.RecipientType.Cc, false, false); #region Generate and save html // Get Html HtmlGenerator oHtmlGenerator = new HtmlGenerator(); oHtmlGenerator.Title = {code}quot;Subject: {msg.Subject}"; oHtmlGenerator.AddParagraphBodyItem({code}quot;File Name: {msg.FileName}"); oHtmlGenerator.AddParagraphBodyItem({code}quot;From: {from}"); oHtmlGenerator.AddParagraphBodyItem({code}quot;Sent On: {(sentOn.HasValue ? sentOn.Value.ToString("MM/dd/yyyy HH:mm") : "")}"); oHtmlGenerator.AddParagraphBodyItem({code}quot;To: {recipientsTo}"); oHtmlGenerator.AddParagraphBodyItem({code}quot;Subject: {msg.Subject}"); if (!string.IsNullOrEmpty(recipientsCc)) { oHtmlGenerator.AddParagraphBodyItem({code}quot;CC: {recipientsCc}"); } oHtmlGenerator.AddRawBodyItem("<hr/>"); var msgBodySplitted = msg.BodyText.Split("\n".ToCharArray()); foreach (var itmBody in msgBodySplitted) { oHtmlGenerator.AddParagraphBodyItem(itmBody); } // Generate Html oHtmlGenerator.SaveHtml("result.html"); #endregion using (HtmlToPdfConverter converter = new HtmlToPdfConverter()) { converter.PageSize = PaperKind.A4; converter.Orientation = Bytescout.PDF.Converters.PaperOrientation.Portrait; converter.ConvertHtmlToPdf("result.html", "result.pdf"); // Open result document in default associated application (for demo purpose) ProcessStartInfo processStartInfo = new ProcessStartInfo("result.pdf"); processStartInfo.UseShellExecute = true; Process.Start(processStartInfo); } } } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine("Press enter key to exit..."); Console.ReadLine(); } } } /// <summary> /// Html Generator class /// </summary> class HtmlGenerator { #region Constructor public HtmlGenerator() { this.StrBodyItems = new List<string>(); } #endregion #region Variable Declarations public string Title { get; set; } private List<string> StrBodyItems { get; set; } #endregion #region Methods /// <summary> /// Add Body Item /// </summary> public void AddRawBodyItem(string strBodyItem) { StrBodyItems.Add(strBodyItem); } /// <summary> /// Add Paragraph body item /// </summary> /// <param name="strText"></param> public void AddParagraphBodyItem(string strText) { StrBodyItems.Add(string.Format("<p style=''>{0}</p>", strText)); } /// <summary> /// Gets Generated Html /// </summary> /// <returns></returns> public string GetHtml() { StringBuilder oRetHtml = new StringBuilder(string.Empty); oRetHtml.Append("<html>"); oRetHtml.Append("<head>"); oRetHtml.AppendFormat("<title>{0}</title>", Title); oRetHtml.Append(@"<style>p { line-height: 107.9 %; margin-bottom: 13pt; font-family: 'Arial', 'sans-serif'; font-size: 15pt; margin-top: 0; margin-left: 0; margin-right: 0; }</style>"); oRetHtml.Append("</head>"); oRetHtml.Append("<body>"); foreach (var itemBody in StrBodyItems) { oRetHtml.Append(itemBody); } oRetHtml.Append("</body>"); oRetHtml.Append("</html>"); return oRetHtml.ToString(); } /// <summary> /// Save all Html /// </summary> /// <param name="fileName"></param> public void SaveHtml(string fileName) { var allHtml = GetHtml(); System.IO.File.WriteAllText(fileName, allHtml); } #endregion } }

Try ByteScout PDF SDK today: 60 Day Free Trial (on-premise version) or sign up for Web API (on demand version)

packages.config
      
<?xml version="1.0" encoding="utf-8"?> <packages> <package id="MsgReader" version="3.4.0" targetFramework="net45" /> <package id="OpenMcdf" version="2.2.1.3" targetFramework="net45" /> </packages>

Try ByteScout PDF SDK today: 60 Day Free Trial (on-premise version) or sign up for Web API (on demand version)

VIDEO

ON-PREMISE VERSION

Get 60 Day Free Trial or Visit ByteScout PDF SDK page

Explore ByteScout PDF SDK documentation

WEB API

Sign Up for free Web API key

Explore Web API Documentation

Tutorials:

prev
next