Gerando arquivos PDF com a library iTextSharp em aplicações ASP .NET Web Forms

Neste artigo, veremos como criar arquivos PDF em aplicações ASP .NET usando a linguagem VB .NET. Para realizar essa tarefa, vamos precisar de uma ajuda. Estou me referindo à biblioteca iTextSharp, que é gratuita e pode ser obtida no seguinte endereço: http://sourceforge.net/projects/itextsharp/.
Então, primeiro faça o download da library para poder referenciá-la em seu projeto web. Eu fiz o download da library e a descompactei em: C:\Program Files\itextsharp-5.0.4-dll
Para demonstrar como usar esse recurso, vou usar o Visual Web Developer 2008 Express Edition e criar um novo web site (New Web Site) usando o template ASP .NET Web Site chamado ASPNET_PDF usando a linguagem Visual Basic. (poderíamos ter usado a linguagem C#).
imagem
Agora vamos referenciar a library iTextSharp em nosso projeto:
No menu WebSite, selecione Add Reference e, em seguida, clique na aba Browse da janela Add Reference e localize o lugar onde você descompactou a biblioteca iTextSharp, selecionando o arquivo itextsharp.dll e clicando em OK.
imagem
Agora vamos definir o seguinte leiaute no arquivo Default.aspx:
Através do menu Table -> Insert Table, inclua uma tabela com 5 linhas e 2 colunas e, a seguir, inclua os seguinte controles na tabela:
  • TextBox - txtTextoPDF
  • TextBox - txtNomeArquivoPDF
  • Button - btnGerarPDF
imagem
Agora no arquivo code-behind Default.aspx.vb vamos definir os namespaces usados no projeto:
  • Imports System
  • Imports System.IO
  • Imports iTextSharp.text
  • Imports iTextSharp.text.pdf
No evento Click do botão de comando btnGerarPDF, vamos fazer a chamada da rotina que iremos criar para gerar o arquivo PDF:
Protected Sub btnGerarPDF_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnGerarPDF.Click
       gerarPDF(txtTextoPDF.Text, txtNomeArquivoPDF.Text)
End Sub
A rotina gerarPDF() está usando o texto a ser gerado no arquivo PDF e o nome do arquivo pdf que será gerado.
A rotina gerarPDF() possui o seguinte código:
Private Sub gerarPDF(ByVal texto As String, ByVal arquivo As String)
Dim hoje As DateTime = DateTime.Now
If (arquivo.Contains(".pdf")) Then
     arquivo = arquivo.Replace(".pdf", "")
End If
Dim arquivoPDF = arquivo & hoje.Millisecond & ".pdf"
Dim doc As Document = New Document
PdfWriter.GetInstance(doc, New FileStream(Request.PhysicalApplicationPath + "\" & arquivoPDF, FileMode.Create))
doc.Open()
doc.Add(New Paragraph(texto))
doc.Close()
Response.Redirect("~/" & arquivoPDF)

End Sub. 
Vamos entender o código acima.
Na primeira parte do código, estou verificando se o nome do arquivo informado possui a extensão .pdf; nesse caso, eu removo a extensão.
A seguir, eu monto o nome do arquivo, adicionando os milissegundos da data obtida para, dessa forma, ter um nome único de arquivo a cada geração.
A seguir é que entra a criação do arquivo PDF:
  • criamos uma instância de um documento através da classe Document;
  • criamos um arquivo PDF usando o nome gerado usando a propriedadeRequest.PhysicalApplicationPath, que obtém o caminho do Sistema de arquivos físicos do diretório raiz do aplicativo de servidor atualmente em execução. Dessa forma, os arquivos serão gerados na raiz da aplicação;
  • abrimos o documento e incluímos o texto informado, e depois fechamos o documento;
  • para exibir o documento, usamos o Response.Redirect.
Na figura a seguir, vemos o resultado do arquivo PDF gerado sendo exibido:
imagem
Viu como é simples gerar arquivos PDF em aplicações web usando o iTextSharp? É claro que existem outros recursos que não foram mostrados, através dos quais podemos gerar documentos mais complexos, mas eu pretendo mostrar isso em outro artigo.
Até o próximo artigo ASP .NET.
Pegue o projeto completo aqui: ASPNET_PDF.zip
Eu sei, é apenas ASP .NET, mas eu gosto...
Obrigado pelo seu comentário

Postagens Relacionadas

Related Posts Plugin for WordPress, Blogger...

Programador GB