VB.NET - Gerando arquivos PDF
Se você estava precisando gerar arquivos PDF usando o VB.NET e não queria comprar componentes de terceiros para completar esta tarefa, hoje você ganhou o dia.
Este artigo mostra como você pode gerar arquivos PDF usando uma biblioteca que pode ser usada sob a LGPL license.
Para poder gerar arquivos
PDF você vai precisar fazer o download da biblioteca
Reports.dll
que se encontra no seguinte endereço::
http://sourceforge.net/projects/report
Esta biblioteca esta sob a licença LGPL, e, isto significa que ela é livre e que pode ser utilizada juntamente com softwares comerciais.
Uma definição para LGPL pode ser assim resumida:
|
Criada em 1999
como 'Library GPL', esta licença é basicamente a
GNU GPL com apenas uma diferença: softwares proprietários podem utilizar
bibliotecas sob esta licença. Isso serve para que a biblioteca cresça na
comunidade, aumentando suas chances de derrubar algum eventual rival
proprietário.
Atenção para um detalhe: softwares proprietários podem rodar com ajuda destas bibliotecas, mas qualquer um que queira criar uma biblioteca embutindo código de uma sob a GNU LGPL encontrará as mesmas obrigações sociais que são impostas pela GNU GPL. Aconselha-se o uso desta licença em bibliotecas, mas apenas naquelas que têm um rival proprietário. Se sua biblioteca é única e você a disponibiliza sob a GNU GPL diretamente, funcionará como uma vantagem exclusiva dos desenvolvedores de software livre. Conselho do Stallman. Library GPL.
Esta é variação da licença GPL que permite o desenvolvimento de programas de
código aberto que contenham módulos proprietários. |
Voltando ao nosso assunto, após efetuar o download da biblioteca Reports.dll , copie o arquivo para uma pasta definida. Pode ser a pasta c:\Windows\System32. (Junto com o download vem a documentação e exemplos em C#, VB.NET e ASP.NET)
Os exemplos a seguir foram adaptados dos exemplos que vem junto com o download da biblioteca.
Inicie um novo projeto no Visual Studio .NET 2003 (1.1) do tipo WIndows Application usando a linguagem VB.NET dando ao mesmo o nome de geraPDF.
Agora vamos incluir uma referência a biblioteca Reports.dll; para isto clique com o botão direito do mouse sobre o nome do projeto(não da solução) e selecione a opção Add Reference. A seguir, estando na guia .NET, clique no botão Browse e selecione o arquivo Reports.dll que você baixou e copiou para sua máquina. A seguir clique em Select e em OK.

Voltando ao projeto podemos agora declarar a seguinte linha de imports para a referência a DLL : Imports Root.Reports
No formulário principal inclua dois botões de comando conforme a figura abaixo:
Nota: Na janela Solution Explorer você pode ver as referências usadas no projeto.
![]() |
Vamos agora executar duas tarefas básicas:
1- Gerar um arquivo PDF e visualizá-lo no VB.NET (Você vai precisar ter o ACROBAT instalado)
2- Gerar um arquivo PDF, visualizá-lo e salvá-lo na pasta bin do projeto.
1 - Gerando e visualizando um arquivo PDF
No evento Click do primeiro botão de comando inclua o seguinte código:
|
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click'cria um novo PDF Dim report As Report = New Report(New PdfFormatter) 'define a fonte usada Dim fd As FontDef = New FontDef(report, FontDef.StandardFont.TimesRoman) Dim fp As FontProp = New FontPropMM(fd, 10) 'cria uma nova página Dim page As Page = New Page(report) 'insere uma linha de texto page.AddCB_MM(60, New RepString(fp, "Olá, Mundo PDF ! "))page.AddCB_MM(120, New RepString(fp, "www.macoratti.net "))'visualiza o PDF RT.ViewPDF(report, "OlaMundo.pdf") End Sub |
Este código faz exatamente o que os comentários explicam. Geram uma arquivo PDF e o exibe.
2 - Gerando, visualizando e salvando um arquivo PDF
No evento Click do primeiro botão de comando inclua o seguinte código:
|
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
' Define informações da fonte usadas Dim FontDef As New FontDef(relatorioPDF, "Courier") Dim FontProp As New FontPropMM(FontDef, 8) ' Cria uma nova página Dim PDFPage As New Page(relatorioPDF) ' Adiciona algumas linhas de texto PDFPage.AddCB_MM(60, New RepString(FontProp, "Gerando PDF"))PDFPage.AddCB_MM(80, New RepString(FontProp, "Visual Basic.NET"))PDFPage.AddCB_MM(100, New RepString(FontProp, "www.macoratti.net"))Try 'visualiza o PDF RT.ViewPDF(relatorioPDF, "OlaMundo.pdf")
relatorioPDF.Save("arquivo.pdf") MsgBox("Arquivo PDF salvo com sucesso.", MsgBoxStyle.Information) Catch ex As ExceptionMsgBox(ex.Message) End TryEnd Sub |
Ao executar o projeto o resultado obtido pelo código do segundo botão é o seguinte:
![]() |
Não vou entrar em mais detalhes pois você tem a documentação e exemplos disponíveis ao fazer o download da biblioteca. Apenas lembrando é free.(não quer dizer que é grátis)
Estou disponibilizando um link para você pegar apenas a biblioteca Reports.dll , mas eu sugiro que você faça o download do site original.
Pegue a biblioteca(Reports.dll) aqui :
ReportsDLL.zip
Até o próximo artigo VB.NET ...![]()
José Carlos Macoratti