ASP.NET HTML String to PDF



Best library is select.pdf compared to itextsharp.

Install the package through nuget. but still it will left one file 'Select.Html.dep' which is required for converting html string to pdf. Download it manually from below link. Extract zip file and copy the Select.Html.dep to your bin directory.

How to fix: Conversion failure. Could not find ‘Select.Html.dep’


http://selectpdf.com/download/SelectPdf-HtmlToPdf-v2.4.0.zip



Code to convert inner html inside panel to PDF is as follows:
Imports SelectPdf
Imports System.IO

Private Sub btnPrint_Click(sender As Object, e As EventArgs) Handles btnPrint.Click
        Dim sw As New StringBuilder()
        Dim tw As New StringWriter(sw)
        Dim hw As New HtmlTextWriter(tw)
        pnlPrint.RenderControl(hw)
        Dim html = sw.ToString()
        ' instantiate a html to pdf converter object
        Dim converter As New HtmlToPdf()

        ' set converter options
        Dim pdf_page_size As String = "A4"
        Dim pageSize As PdfPageSize = DirectCast([Enum].Parse(GetType(PdfPageSize), pdf_page_size, True), PdfPageSize)
        Dim pdfOrientation As PdfPageOrientation = DirectCast([Enum].Parse(GetType(PdfPageOrientation),
                    "Portrait", True), PdfPageOrientation)
        converter.Options.PdfPageSize = pageSize
        converter.Options.PdfPageOrientation = pdfOrientation
        'converter.Options.WebPageWidth = webPageWidth
        'converter.Options.WebPageHeight = webPageHeight
        SelectPdf.GlobalProperties.HtmlEngineFullPath = HttpContext.Current.Server.MapPath("~/bin/Select.Html.dep")
        Dim doc As PdfDocument = converter.ConvertHtmlString(html, "")

        ' save pdf document
        doc.Save(Response, False, "print" & Session("formid") & ".pdf")

        ' close pdf document
        doc.Close()

    End Sub

Create a button and panel on your aspx page.

Comments