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

Html to Pdf Conversion is now available for .NET Core. SelectPdf offers a Community Edition (FREE) of the powerful Html To Pdf Converter for .NET Core that can be found in the full featured pdf library.

C# (1.6 MB)
4.3 Star
2,061 times
Add to favorites
E-mail Twitter Digg Facebook

Solution explorer

using System;
using System.IO;
using System.Net.Mail;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;

namespace SelectPdf.Samples.Pages
    public class ConvertAndEmailModel : PageModel
        public void OnGet()


        public string TxtUrl { get; set; }
        public string TxtEmail { get; set; }

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

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

                // 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));
                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

                ViewData["Message"] = "Email sent";
            catch (Exception ex)
                ViewData["Message"] = "An error occurred: " + ex.Message;