Convert from HTML to PDF in CSharp VB and ASP.NET with a Free 3rd Party Library

Converting from html to pdf is not an easy task. There are some tools that can do that, but most of them cost thousands of dollars. SelectPdf offers a Community Edition (FREE) of the powerful Html To Pdf Converter for .NET that can be found in the full featured pdf library.

3.6 Star
53,151 times
Add to favorites
E-mail Twitter Digg Facebook

Solution explorer

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Net.Mail;

namespace SelectPdf.Samples
    public partial class convert_and_email : System.Web.UI.Page
        protected void BtnCreatePdf_Click(object sender, EventArgs e)
            // instantiate a html to pdf converter object
            HtmlToPdf converter = new HtmlToPdf();

                // create a new pdf document converting an url
                PdfDocument doc = converter.ConvertUrl(TxtUrl.Text);

                // create memory stream to save PDF
                MemoryStream pdfStream = new MemoryStream();

                // save pdf document into a MemoryStream

                // reset stream position
                pdfStream.Position = 0;

                // create email message
                MailMessage message = new MailMessage();
                message.From = new MailAddress("");
                message.To.Add(new MailAddress(TxtEmail.Text));
                message.Subject = "SelectPdf Sample - Convert and Email as Attachment";
                message.Body = "This email should have attached the PDF document " +
                    "resulted from the conversion of the following url to pdf: " +
                message.Attachments.Add(new Attachment(pdfStream, "Document.pdf"));

                // send email
                new SmtpClient().Send(message);

                // close pdf document

                LblMessage.Text = "Email sent";
            catch (Exception ex)
                LblMessage.Text = "An error occurred: " + ex.Message;