Click or drag to resize
Pdf Library for .NET

Convert to Pdf and Email as Attachment

It is very simple to convert a web page to PDF using SelectPdf Html to Pdf Converter. We have detailed in two previous sections how to Convert Url To Pdf and how to Convert Html Code To Pdf.

After a conversion, the generated PDF document can be saved on disk, can be sent to the browser or can even be sent by email.

Sample Code

This sample shows the simplest code that can be used to convert an url to pdf using SelectPdf Pdf Library for .NET and then email the generated PDF document as an attachment.

// instantiate a html to pdf converter object
HtmlToPdf converter = new HtmlToPdf();

try
{
    // 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
    doc.Save(pdfStream);

    // reset stream position
    pdfStream.Position = 0;

    // create email message
    MailMessage message = new MailMessage();
    message.From = new MailAddress("support@selectpdf.com");
    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: " + 
        TxtUrl.Text;
    message.Attachments.Add(new Attachment(pdfStream, "Document.pdf"));

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

    // close pdf document
    doc.Close();

    LblMessage.Text = "Email sent";
}
catch (Exception ex)
{
    LblMessage.Text = "An error occurred: " + ex.Message;
}
Web.config Settings

Remember that System.Net.Mail only works if the SMTP settings are configured. Here is a sample configuration:

XML
<system.net>
  <mailSettings>
    <smtp from="test@foo.com">
      <network host="smtpserver1" port="25" userName="username" password="secret" defaultCredentials="true" />
    </smtp>
  </mailSettings>
</system.net>
See Also