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();
}
Thế là xong!
Các bạn có thể checkout source code tại đây: http://code2code.googlecode.com/svn/trunk/ExportToPdfUsingItextSharp