These sample source codes on this page below are displaying how to convert html email to pdf with pdf sdk in C#. ByteScout Premium Suite: the bundle that includes twelve SDK products from ByteScout including tools and components for PDF, barcodes, spreadsheets, screen video recording. It can convert html email to pdf with pdf sdk in C#.
Want to quickly learn? This fast application programming interfaces of ByteScout Premium Suite for C# plus the guidelines and the code below will help you quickly learn how to convert html email to pdf with pdf sdk. IF you want to implement the functionality, just copy and paste this code for C# below into your code editor with your app, compile and run your application. Enjoy writing a code with ready-to-use sample C# codes.
All these programming tutorials along with source code samples and ByteScout free trial version are available for download from our website.
On-demand (REST Web API) version:
Web API (on-demand version)
On-premise offline SDK for Windows:
60 Day Free Trial (on-premise)
using System;
using System.Diagnostics;
using System.Drawing.Printing;
using System.IO;
using System.Text;
using Bytescout.PDF;
using Bytescout.PDF.Converters;
using Font = Bytescout.PDF.Font;
using SolidBrush = Bytescout.PDF.SolidBrush;
namespace EmailToPDF_HTMLEmail
{
class Program
{
static void Main(string[] args)
{
try
{
// Parse MessageContents using MsgReader Library
// MsgReader library can be obtained from: https://github.com/Sicos1977/MSGReader
using (var msg = new MsgReader.Outlook.Storage.Message("HtmlSampleEmail.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);
// Message subject
var subject = msg.Subject;
// Get Message Body
var msgBody = msg.BodyHtml;
// Prepare PDF docuemnt
using (Document outputDocument = new Document())
{
// Add registration keys
outputDocument.RegistrationName = "demo";
outputDocument.RegistrationKey = "demo";
// Add page
Page page = new Page(PaperFormat.A4);
outputDocument.Pages.Add(page);
// Add sample content
Font font = new Font(StandardFonts.Times, 12);
Brush brush = new SolidBrush();
// Add Email contents
int topMargin = 20;
page.Canvas.DrawString({code}quot;File Name: {msg.FileName}", font, brush, 20, (topMargin += 20));
page.Canvas.DrawString({code}quot;From: {from}", font, brush, 20, (topMargin += 20));
page.Canvas.DrawString({code}quot;Sent On: {(sentOn.HasValue ? sentOn.Value.ToString("MM/dd/yyyy HH:mm") : "")}", font, brush, 20, (topMargin += 20));
page.Canvas.DrawString({code}quot;To: {recipientsTo}", font, brush, 20, (topMargin += 20));
if (!string.IsNullOrEmpty(recipientsCc))
{
page.Canvas.DrawString({code}quot;CC: {recipientsCc}", font, brush, 20, (topMargin += 20));
}
page.Canvas.DrawString({code}quot;Subject: {subject}", font, brush, 20, (topMargin += 20));
page.Canvas.DrawString("Message body in next page.", font, brush, 20, (topMargin += 20));
// Convert Html body to PDF in order to retain all formatting.
using (HtmlToPdfConverter converter = new HtmlToPdfConverter())
{
converter.PageSize = PaperKind.A4;
converter.Orientation = Bytescout.PDF.Converters.PaperOrientation.Portrait;
// Convert input HTML to stream
byte[] byteArrayBody = Encoding.UTF8.GetBytes(msgBody);
MemoryStream inputStream = new MemoryStream(byteArrayBody);
// Create output stream to store generated PDF file
using (var outputStream = new MemoryStream())
{
// Convert HTML to PDF
converter.ConvertHtmlToPdf(inputStream, outputStream);
// Create new document from generated output stream
Document docContent = new Document(outputStream);
// Append all pages to main PDF
foreach (Page item in docContent.Pages)
{
outputDocument.Pages.Add(item);
}
// Save output file
outputDocument.Save("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();
}
}
}
}
60 Day Free Trial or Visit ByteScout Premium Suite Home Page
Explore ByteScout Premium Suite Documentation
Explore Samples
Sign Up for ByteScout Premium Suite Online Training
Get Your API Key
Explore Web API Docs
Explore Web API Samples
<?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>
60 Day Free Trial or Visit ByteScout Premium Suite Home Page
Explore ByteScout Premium Suite Documentation
Explore Samples
Sign Up for ByteScout Premium Suite Online Training
Get Your API Key
Explore Web API Docs
Explore Web API Samples
60 Day Free Trial or Visit ByteScout Premium Suite Home Page
Explore ByteScout Premium Suite Documentation
Explore Samples
Sign Up for ByteScout Premium Suite Online Training
Get Your API Key
Explore Web API Docs
Explore Web API Samples
also available as: