Export to pdf file sử dụng Itextsharp với asp.net

Trong bài này mình sẽ hướng dẫn các bạn, cách làm thế nào để export nội dung ra file *.pdf sử dụng itextsharp.

Ở đây mình sẽ cài đặt Itextsharp bằng Nuget, các bạn cũng có thể làm với cách khác nếu như các bạn download manual, đầu tiên mình sẽ tạo 1 blank website và add itextsharp bằng Nuget.


Mình sẽ sử dụng thư viện Hugo Bonacci cung cấp HtmlToPdfBuilder.cs.
Từ trang default.aspx mình sẽ thêm nội dụng cho thẻ Div và set thuộc tính runat=”server”, và đây là nội dung Default.aspx:


<div id="content" runat="server">
       <p>
            Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam eleifend nunc ut
            nibh commodo tristique in et purus. Nunc viverra, tellus quis venenatis tempus,
            dui massa viverra risus, cursus luctus quam mi nec est. Nulla facilisi. Morbi felis
            erat, mollis et consectetur tincidunt, congue vitae nunc. Vivamus nunc est, molestie
            eu laoreet quis, tempor eu dolor. Vivamus tortor nibh, malesuada vel hendrerit sed,
            ultrices vitae eros. In sit amet lacus tempor elit commodo posuere vitae sit amet
            ante. Aliquam at libero magna. Mauris faucibus dapibus ultrices. Donec rutrum, mauris
            nec tempor luctus, felis turpis dignissim sapien, eu feugiat metus erat at ante.
            Praesent iaculis metus at diam tincidunt vulputate dapibus ante volutpat. Suspendisse
            vulputate mauris non augue ullamcorper tempus. Maecenas sed ipsum nec nisi tincidunt
            condimentum euismod a urna. Maecenas orci leo, malesuada quis facilisis at, lacinia
            non est. Praesent mi mauris, laoreet vitae egestas vitae, luctus non nunc. Vestibulum
            viverra condimentum lectus, pretium tempus nulla sodales non. Sed lectus odio, ullamcorper
            ac viverra vel, facilisis laoreet sapien. Phasellus tristique vulputate posuere.
            Duis adipiscing blandit est, a lobortis velit auctor non. Cum sociis natoque penatibus
            et magnis dis parturient montes, nascetur ridiculus mus.
        </p>
        <p>
            Morbi quis massa ac nunc accumsan sagittis ac et tortor. In non mi orci. Cras mattis
            lacus et lectus porttitor facilisis. Nullam tempor lacus a magna scelerisque interdum.
            In pellentesque ultrices nibh, eu cursus lectus viverra a. Cum sociis natoque penatibus
            et magnis dis parturient montes, nascetur ridiculus mus. Vestibulum et quam et sapien
            facilisis sollicitudin. Praesent sodales ultricies commodo. Morbi suscipit leo leo.
            Nullam suscipit cursus diam vitae suscipit. Donec nec ante vitae augue consectetur
            ullamcorper malesuada vitae urna. Maecenas sed tincidunt urna. Suspendisse eget
            felis dui. Donec sit amet nibh ac risus dignissim fermentum et in nulla. Pellentesque
            varius augue vitae sem semper et molestie nunc eleifend. Nam ut molestie mauris.
        </p>
        <p>
            Vivamus at metus ante. Duis vitae suscipit nibh. Etiam metus arcu, pulvinar nec
            bibendum laoreet, rhoncus eu quam. Suspendisse pellentesque hendrerit nunc id scelerisque.
            Aenean sagittis arcu sit amet neque commodo blandit. Nullam bibendum, est in rutrum
            imperdiet, sem urna lobortis leo, at hendrerit tellus mauris in orci. Ut quis turpis
            neque, ac euismod augue. Sed ornare nisl in eros eleifend volutpat at non nulla.
            Etiam mi massa, congue facilisis tempus ac, ullamcorper a lorem. Phasellus eleifend
            odio a eros viverra fringilla. Lorem ipsum dolor sit amet, consectetur adipiscing
            elit. Proin vitae orci ac felis blandit gravida. Etiam luctus velit elit, eget cursus
            est. Duis fringilla erat non justo blandit hendrerit. Nulla sit amet ornare mi.
        </p>
    </div>
    <asp:Button ID="btnExportPdf" runat="server" OnClick="btnExportPdf_Click" Text="Export To Pdf" />
Ở trong Code Behind mình sẽ lưu nội dụng ra file và tiến hành download nó:


protected void btnExportPdf_Click(object sender, EventArgs e)
    {
        string path = Server.MapPath("~/PDF/");
        string filename = DateTime.Now.Ticks.ToString() + ".pdf";
        HtmlToPdfBuilder builder = new HtmlToPdfBuilder(PageSize.LETTER);
        HtmlPdfPage first = builder.AddPage();
        first.AppendHtml(content.InnerText);
        byte[] file = builder.RenderPdf();
        filename = DateTime.Now.Ticks.ToString() + ".pdf";
        File.WriteAllBytes(path + filename + ".pdf", file);
        //
        HttpContext.Current.Response.Buffer = true;
        HttpContext.Current.Response.ClearContent();
        HttpContext.Current.Response.ClearHeaders();
        HttpContext.Current.Response.ContentType = "application//pdf";
        HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + filename);
        HttpContext.Current.Response.BinaryWrite(file);
        HttpContext.Current.Response.End();
    }
Chúc các bạn thành công