Click here to Skip to main content
Click here to Skip to main content

Creating PDF Documents in ASP.NET

By , 26 Sep 2007
 

Screenshot - 081_hello_pdf.jpg

Introduction

This short article explains how to create PDF documents from ASP.NET web pages using this free library: http://sourceforge.net/projects/itextsharp/.

The code

First of all, I will create a simple "Hello PDF". Next, I will create a more complex PDF document with tables. To start creating PDF documents, you need to download the iTextSharp library from http://sourceforge.net/projects/itextsharp/ and reference it in your project. The PDF documents are created "on the fly" by the web page "ShowPDF.aspx". This page also does a "Response.Redirect" to the created PDF. We will first import the required namespaces:

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

Next, in the Page_Load event, we find out which document was requested by the user:

Partial Class ShowPDF
   Inherits System.Web.UI.Page
   
   Protected Sub Page_Load(ByVal sender As Object, _
             ByVal e As System.EventArgs) Handles Me.Load
      If Request.QueryString("id") = 1 Then
         ShowHello()
       Else
         ShowTable()
       End If
   End Sub
End Class

The ShowHello function creates a simple document with just one string: "Hello World", and then redirects the user to the newly created document:

Sub ShowHello()
   Dim doc As Document = New Document
   PdfWriter.GetInstance(doc, New FileStream(Request.PhysicalApplicationPath + _
                         "\1.pdf", FileMode.Create))
   doc.Open()
   doc.Add(New Paragraph("Hello World"))
   doc.Close()
   Response.Redirect("~/1.pdf")
End Sub

A more complex example

The function ShowTable is slightly more complex. It also creates a PDF document and redirects the user to it:

Sub ShowTable()
   Dim doc As Document = New Document
   PdfWriter.GetInstance(doc, New FileStream(Request.PhysicalApplicationPath + _
                         "\2.pdf", FileMode.Create))
   doc.Open()
   Dim table As Table = New Table(3)
   table.BorderWidth = 1
   table.BorderColor = New Color(0, 0, 255)
   table.Padding = 3
   table.Spacing = 1
   Dim cell As Cell = New Cell("header")
   cell.Header = True
   cell.Colspan = 3
   table.AddCell(cell)
   cell = New Cell("example cell with colspan 1 and rowspan 2")
   cell.Rowspan = 2
   cell.BorderColor = New Color(255, 0, 0)
   table.AddCell(cell)
   table.AddCell("1.1")
   table.AddCell("2.1")
   table.AddCell("1.2")
   table.AddCell("2.2")
   table.AddCell("cell test1")
   cell = New Cell("big cell")
   cell.Rowspan = 2
   cell.Colspan = 2
   cell.HorizontalAlignment = Element.ALIGN_CENTER
   cell.VerticalAlignment = Element.ALIGN_MIDDLE
   cell.BackgroundColor = New Color(192, 192, 192)
   table.AddCell(cell)
   table.AddCell("cell test2")
   doc.Add(table)
   doc.Close()
   Response.Redirect("~/2.pdf")
End Sub

Using the iTextSharp library (http://sourceforge.net/projects/itextsharp/) makes it very easy to create PDF documents from web applications.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

fstrahberger
Web Developer
Germany Germany
Member
Florian works as consultant for change- and configuration management for about 7 years. In this environment he is often forced to work with unix, perl and shell scripts.
 
For more information about change- and configuration management (espacially Serena Dimensions) visit: www.venco.de
 
For video tutorials about asp.net, ajax, gridviews, ... (in german) visit: www.siore.com

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
Hint: For improved responsiveness ensure Javascript is enabled and choose 'Normal' from the Layout dropdown and hit 'Update'.
You must Sign In to use this message board.
Search this forum  
    Spacing  Noise  Layout  Per page   
GeneralMy vote of 5memberSheikh Muhammad Haris13 Apr '13 - 5:09 
QuestionMy vote of 3memberAlireza_136226 Mar '13 - 17:33 
Questionextracting tablememberKalpana Volety11 Jan '13 - 8:07 
QuestionHow to use c#memberbayte25 May '12 - 3:21 
GeneralMy vote of 5membersravani.v24 Apr '12 - 1:22 
QuestionRowSpan problemmemberVincent Roggero9 Apr '12 - 3:40 
Generalaaaaaaaamemberpragneshpml11 Mar '12 - 19:59 
GeneralMy vote of 5membersameerAbdulla9 Jan '12 - 23:25 
QuestionProblem function TablememberMember 851181522 Dec '11 - 23:30 
QuestionIs this pdf abel to have the HTML controls inside ?memberamit_usa12 Dec '11 - 11:23 
Questionitextsharp 4.0.4membermauirinho5 Sep '11 - 15:22 
Generalnot work with some langaugememberBasharss19 Apr '11 - 4:01 
GeneralMy vote of 5memberprajod26 Feb '11 - 19:34 
Generalthanksmembersyed8323 Feb '11 - 14:56 
GeneralMy vote of 5memberBElavarasan13 Feb '11 - 21:51 
GeneralGreatmemberjluisrojas17 Jan '11 - 13:14 
GeneralGOODmemberalessahilton15 Jan '11 - 22:09 
GeneralMy vote of 2memberLibin Jose chemperi6 Dec '10 - 23:55 
GeneralMy vote of 5memberEswa8 Nov '10 - 0:45 
GeneralMy vote of 5memberEswa28 Oct '10 - 23:50 
GeneralByte[] to File.pdfmemberMember 362262327 Oct '10 - 13:13 
GeneralMy vote of 4memberCGI99923 Aug '10 - 17:14 
GeneralMy vote of 2memberashish Sharma kumar11 Aug '10 - 18:16 
GeneralError in servermemberdvbsaravan20 Jul '10 - 20:58 
GeneralRe: Error in servermemberMember 446143310 Aug '10 - 2:03 
GeneralMy vote of 5memberDon_Hard11 Jul '10 - 3:39 
GeneralCompile time error: Table, Cell and AddCell method definememberBajrang Singh17 Jun '10 - 22:51 
GeneralRe: Compile time error: Table, Cell and AddCell method definememberMember 37782905 Aug '10 - 12:33 
GeneralTablemembermaxnis17 Jun '10 - 9:54 
GeneralRe: Tablemembergrokuk7 Jul '10 - 4:00 
GeneralRe: TablememberChristineDaae7 Jan '11 - 3:28 
QuestionHow to set the width and height of a column?memberMenandro2 Feb '10 - 4:03 
QuestionRun this from a server?memberJohn Straumann8 Jan '10 - 11:41 
QuestionHow set image with in table cell?membernangaram4 Jan '10 - 1:03 
QuestionHow to add image inside tablememberFatuma Hassen10 Dec '09 - 22:28 
Questionhow should i add fussioncharts to this pdf?memberPatilvaishalimangesh29 Oct '09 - 1:52 
Questionhow can i show pdf file with btn click even as it has been createdmembermanoj.barmola17 Sep '09 - 22:39 
Generalpdf envelope using itextsharpmembercpandiya13 Sep '09 - 23:30 
Questionhow to create arabic pdf filesmembershaaa5 Sep '09 - 0:19 
Questiondoes anyone know of a document laying out all the functionality of this DLL ?memberTalind11 Aug '09 - 9:01 
QuestionConvert webpage to PDFmemberSteve4568798754423 Jun '09 - 22:41 
AnswerRe: Convert webpage to PDFmembervamshi.k.choutpally16 Mar '10 - 23:32 
GeneralRe: Convert webpage to PDFmemberstevemonty3872917 Mar '10 - 13:30 
GeneralEmemberTavox0117 Jun '09 - 4:44 
Generalsetting height and width of image. also setting cell height and width.memberyogi_85858 Jun '09 - 23:12 
GeneralTables without bordersmembergchq1 Jun '09 - 10:28 
GeneralRe: Tables without bordersmembergchq1 Jun '09 - 14:59 
QuestionHow Can I save this PDF Files?membermaheshTCS22 Apr '09 - 1:35 
AnswerRe: How Can I save this PDF Files?memberfstrahberger22 Apr '09 - 7:18 
QuestionIs it possible to make Paragraph ?membermomydia1 Apr '09 - 6:55 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Permalink | Advertise | Privacy | Mobile
Web01 | 2.6.130516.1 | Last Updated 27 Sep 2007
Article Copyright 2007 by fstrahberger
Everything else Copyright © CodeProject, 1999-2013
Terms of Use
Layout: fixed | fluid