SelectPdf for .NET 10 - Pdf Html Element - C# / .NET 10 Sample

HTML content can be added to a pdf document in several ways. If a complex document is created that will contain several types of pdf elements and the html content that will be added is only a small part of the total content, PdfHtmlElement objects can be used to convert web pages or raw html content and add the conversion result to the pdf document.

If the pdf is generated mostly as a result of an html to pdf conversion, the HtmlToPdf object should be used instead. This is described in details in the "Html to Pdf Converter" section of our samples that starts here.

The following sample shows how to use a PdfHtmlElement object to convert a web page to pdf using SelectPdf Library for .NET.

Url:


Rendering Engine:


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

namespace SelectPdf.Samples.Pages
{
    public class PdfHtmlElementModel : PageModel
    {
        public void OnGet()
        {
            DdlRenderingEngine = "Chromium";
        }

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

        [BindProperty]
        public string DdlRenderingEngine { get; set; } = "Chromium";

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

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

            // create a new pdf document
            PdfDocument doc = new PdfDocument();

            // add a new page to the document
            PdfPage page = doc.AddPage();

            // create html element
            PdfHtmlElement html = new PdfHtmlElement(TxtUrl);
            html.NavigationTimeout = Startup.NavigationTimeout;

            // add the html element to the document
            page.Add(html);

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

        }
    }
}