Export HTML with CheckBox to PDF using iTextSharp in ASP.Net

Last Reply 2 months ago By pandeyism

Posted 2 months ago

Hello,

How to convert A check box with a check mark on it and a text I agree from a web page to a PDF file and save it in a folder in project solution use C# and asp.Net?

 

Posted 2 months ago

Hi KatieNgoc,

Refer below sample code.

HTML

<div>
    <asp:Image ImageUrl="~/Files/E-Sign.png" runat="server" Height="100px" Width="100px" />
    <br />
    <div runat="server" id="pnlDetails">
        <p>
            1. Get A Discount On A New Walk In Tub</p>
        <p>
            Walk in tubs are a perfect addition for seniors living with mobility challenges
            or anyone worried about fall related injuries. Statistics tell us that falls happen
            in your bathroom more than any other room in the home.</p>
        <p>
            In fact two-thirds of all bathroom injuries happen near the shower or bath-tub,
            according to The Center for Disease Control. Most falls typically happen when your
            stepping over the tub, slipping on a wet floor or when leaning on a glass door that
            wasn't designed to support your weight</p>
        <p>
            A Walk-in tub is an investment in your future a simple modification to your bathroom
            can change your life. Keeping your independence and dignity, plus peace of mind
            for your loved ones all ad up to a better quality of life. Right now, Walk-in tub
            manufacturers all over the country are offering big senior discounts. Visit the
            walk-in tub website to find discounts and get a free quote on a new Walk-in tub.</p>
    </div>
    <asp:CheckBox Text="I Agree" runat="server" ID="chkAgree" />
    <asp:Button ID="btnSave" Text="Save" runat="server" OnClick="Save" />
</div>

Namespaces

C#

using iTextSharp.text;
using iTextSharp.text.pdf;
using System.IO;

VB.Net

Imports iTextSharp.text
Imports iTextSharp.text.pdf
Imports System.IO

Code

C#

protected void Save(object sender, EventArgs e)
{
    using (FileStream stream = new FileStream(Server.MapPath("~/Files/") + "ImageExport.pdf", FileMode.Create))
    {
        String[] texts = { chkAgree.Text };
        string filePath = "~/Files/" + Path.GetFileName("E-Sign.png");
        byte[] bytes = File.ReadAllBytes(Server.MapPath(filePath));
        Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 10f);
        PdfWriter writer = PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
        PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
        PdfWriter.GetInstance(pdfDoc, stream);
        pdfDoc.Open();
        string FONT = "c:/windows/fonts/WINGDING.TTF";
        string checkBox = "\u00fe";
        string uncheckBox = "o";
        BaseFont bf = BaseFont.CreateFont(FONT, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
        iTextSharp.text.Font f = new iTextSharp.text.Font(bf, 12);
        Paragraph ptrue = new Paragraph(checkBox, f);
        Paragraph pfalse = new Paragraph(uncheckBox, f);
        if (chkAgree.Checked)
        {
            pdfDoc.Add(ptrue);
        }
        else
        {
            pdfDoc.Add(pfalse);
        }    
        pdfDoc.Add(new Paragraph(chkAgree.Text));
        iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(bytes);
        pdfDoc.Add(img);
        iTextSharp.text.html.simpleparser.HTMLWorker hw = new iTextSharp.text.html.simpleparser.HTMLWorker(pdfDoc);
        hw.Parse(new StringReader(pnlDetails.InnerText));
        pdfDoc.Close();
        stream.Close();
    }
}

VB.Net

Protected Sub Save(ByVal sender As Object, ByVal e As EventArgs)
    Using stream As FileStream = New FileStream(Server.MapPath("~/Files/") & "ImageExport.pdf", FileMode.Create)
        Dim texts As String() = {chkAgree.Text}
        Dim filePath As String = "~/Files/" & Path.GetFileName("E-Sign.png")
        Dim bytes As Byte() = File.ReadAllBytes(Server.MapPath(filePath))
        Dim pdfDoc As Document = New Document(PageSize.A4, 10F, 10F, 10F, 10F)
        Dim writer As PdfWriter = PdfWriter.GetInstance(pdfDoc, Response.OutputStream)
        PdfWriter.GetInstance(pdfDoc, Response.OutputStream)
        PdfWriter.GetInstance(pdfDoc, stream)
        pdfDoc.Open()
        Dim FONT As String = "c:/windows/fonts/WINGDING.TTF"
        Dim checkBox As String = "\u00fe"
        Dim uncheckBox As String = "o"
        Dim bf As BaseFont = BaseFont.CreateFont(FONT, BaseFont.IDENTITY_H, BaseFont.EMBEDDED)
        Dim f As iTextSharp.text.Font = New iTextSharp.text.Font(bf, 12)
        Dim ptrue As Paragraph = New Paragraph(checkBox, f)
        Dim pfalse As Paragraph = New Paragraph(uncheckBox, f)

        If chkAgree.Checked Then
            pdfDoc.Add(ptrue)
        Else
            pdfDoc.Add(pfalse)
        End If

        pdfDoc.Add(New Paragraph(chkAgree.Text))
        Dim img As iTextSharp.text.Image = iTextSharp.text.Image.GetInstance(bytes)
        pdfDoc.Add(img)
        Dim hw As iTextSharp.text.html.simpleparser.HTMLWorker = New iTextSharp.text.html.simpleparser.HTMLWorker(pdfDoc)
        hw.Parse(New StringReader(pnlDetails.InnerText))
        pdfDoc.Close()
        stream.Close()
    End Using
End Sub