SelectPdf Free Html To Pdf Converter for .NET Core - Convert Current Web Page to Pdf - C# / ASP.NET 10 Sample

This sample shows how to use SelectPdf Html to Pdf Converter to convert the current web page to pdf, preserving the values entered in the page controls before hitting the 'Convert' button.

Sample text field:


Rendering Engine:

Sample drop down:


Sample check box:


Sample text field:
px

Sample text field:
px

Sample code · C#
using System;
using System.IO;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.AspNetCore.Mvc.Rendering;
using System.Collections.Generic;
using Microsoft.AspNetCore.Mvc.ViewFeatures;
using Microsoft.AspNetCore.Mvc.ViewEngines;
using System.Threading.Tasks;
using SelectPdf.Universal;

namespace SelectPdf.Samples.Pages
{
    public class CurrentWebPageToPdfModel : PageModel
    {
        private readonly IViewRenderService _viewRenderService;

        public CurrentWebPageToPdfModel(IViewRenderService viewRenderService)
        {
            _viewRenderService = viewRenderService;
        }

        public void OnGet()
        {
            DdlRenderingEngine = "Chromium";
            TxtSampleText = "sample text";
            DdlDropDownList1 = "Value3";

            ChkSampleCheckbox = true;

            TxtSampleText2 = "1000";
            TxtSampleText3 = "800";
        }

        [BindProperty]
        public string TxtSampleText { get; set; }

        [BindProperty]
        public string DdlRenderingEngine { get; set; }

        public List<SelectListItem> RenderingEngines { get; } = new List<SelectListItem>
        {
            new SelectListItem { Value = "Chromium", Text = "Chromium" },
        };

        [BindProperty]
        public string DdlDropDownList1 { get; set; }

        public List<SelectListItem> DropDownList1Values { get; } = new List<SelectListItem>
        {
            new SelectListItem { Value = "Value1", Text = "Value1" },
            new SelectListItem { Value = "Value2", Text = "Value2" },
            new SelectListItem { Value = "Value3", Text = "Value3" },
            new SelectListItem { Value = "Value4", Text = "Value4" },
        };

        [BindProperty]
        public bool ChkSampleCheckbox { get; set; }

        [BindProperty]
        public string TxtSampleText2 { get; set; }

        [BindProperty]
        public string TxtSampleText3 { get; set; }

        public async Task<IActionResult> OnPost()
        {
            RenderingEngine renderingEngine =
                SampleForm.ParseEnum(DdlRenderingEngine, RenderingEngine.Chromium);

            string htmlString = await _viewRenderService.RenderToStringAsync("CurrentWebPageToPdf", "~/Pages/_LayoutConverter.cshtml", new CurrentWebPageToPdfModel(_viewRenderService)
            {
                TxtSampleText = this.TxtSampleText,
                DdlDropDownList1 = this.DdlDropDownList1,
                ChkSampleCheckbox = this.ChkSampleCheckbox,
                TxtSampleText2 = this.TxtSampleText2,
                TxtSampleText3 = this.TxtSampleText3,
            });

            // get base url
            string baseUrl = Helper.AppBaseUrl(Request);

            // instantiate a html to pdf converter object
            HtmlToPdf converter = new HtmlToPdf();
            converter.Options.NavigationTimeout = Startup.NavigationTimeout;
            converter.Options.RenderingEngine = renderingEngine;

            // create a new pdf document converting a html string
            PdfDocument doc = converter.ConvertHtmlString(htmlString, baseUrl);

            // save pdf document
            byte[] pdf = doc.Save();

            // close pdf document
            doc.Close();

            // return resulted pdf document
            FileResult fileResult = new FileContentResult(pdf, "application/pdf");
            fileResult.FileDownloadName = "Document.pdf";
            return fileResult;
        }
    }
}