Desenvolvimento - C#

Gerando arquivos PDF em C#

Este artigo explica como gerar um documento no formato PDF.

por Antonio Lucas Finotti Pereira



Neste artigo vou explicar como gerar um arquivo PDF utilizando c#. Vamos utilizar uma classe free chamada REPORTS.NET (http://csharp-source.net/open-source/pdf-libraries/report.net). Essa classe é opensource e pode ser baixada do site: http://report.sourceforge.net/.

Primeiro vamos iniciar um novo projeto:

Primeiro vamos selecionar a opção Visual C# da área Project types e no Templates, escolheremos a opção Windows Application.

O nome dele será GERA_PDF, após dar o nome ao projeto vamos clicar em OK !

Depois temos que incluir a classe nas referências do projeto. Primeiro selecionamos a aba SOLUTION EXPLORER e depois vamos clicar o botão direito do mouse na opção REFERENCES e selecionar ADD REFERENCES.

OBS: Nesta opção podemos incluir diversas classes no nosso projeto, podemos também incluir uma classe do Visual Basic, assim podemos utilizar algumas funções que o VB possui.

Será exibida a janela do Add Reference, nela você terá que ir para a aba BROWSE, para poder navegar entre as pastas do seu computador e selecionar o arquivo baixado pelo site.

Após selecionar o arquivo desejado, clique no botão OK.



Vamos agora para o formulário do projeto, vamos montar um layout para que o usuário informe algumas informações para que o arquivo seja gerado. Abaixo segue um modelo!

Depois de montar a tela do programa, vamos para o código do aplicativo. Primeiramente precisamos incluir a classe no inicio da pagina de código do formulário. Para acessar a pagina de código do formulário, você pode clicar duas vezes na área do formulário ou clicar o botão direito do mouse e selecionar VIEW CODE.

Precisamos inserir a linha que está na cor vermelha:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using Root.Reports;

Agora vamos codificar o botão [GERAR ARQUIVO], para isso temos que voltar para o design do formulário, clique o botão direito do mouse e selecione VIEW DESIGNER. Após isso clique duas vezes no botão para abrir o método btnGerar_Click().

Segue abaixo como o evento do botão deve ficar:

private void btnGerar_Click(object sender, EventArgs e)

{

// Variavel do Nome e caminho do arquivo

string vArq = "";

// Abre janela para usuário escolher a pasta onde o arquivo será gerado

FolderBrowserDialog vSalvar = new FolderBrowserDialog();

// Verifica se o usuário clicou em ok ou cancelar na janela de seleção da pasta

if (vSalvar.ShowDialog() == DialogResult.Cancel)

return; // Cancela todo processo

// Insere na variavel o caminho selecionado pelo usuário e concatena com o nome do arquivo

vArq = vSalvar.SelectedPath + "\\" + txtNomeArquivo.Text.Trim() + ".pdf";

try

{

// Cria um objeto PDF

Report vPdf = new Report(new PdfFormatter());

// Define a fonte que sera usada no relatório PDF

FontDef vDef = new FontDef(vPdf, FontDef.StandardFont.TimesRoman);

FontProp vDrop = new FontProp(vDef, 10);

// Cria uma Nova Pagina

Page vPage = new Page(vPdf);

// Escreve no Arquivo

vPage.AddCB_MM(5, new RepString(vDrop, txtTextoArquivo.Text)); // Centraliza

// Salvar Arquivo no disco

vPdf.Save(vArq);

MessageBox.Show("Arquivo Gerado com sucesso !", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

catch (Exception ex)

{

MessageBox.Show("Erro ao Gerar arquivo !!", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

}

Exemplo do aplicação funcionando.

1 – Informar o Nome do arquivo

2 – Digitar o Texto que será gravado no arquivo

3 – Clicar em gerar



Após isso será exibida a janela para selecionar onde o arquivo será gerado, e ao clicar em ok será exibida uma mensagem avisando se tudo ocorreu bem ou se deu algum tipo de erro.

Segue o exemplo do arquivo gerado pelo sistema:

Antonio Lucas Finotti Pereira

Antonio Lucas Finotti Pereira - Pós-Graduado em Tecnologia em Desenvolvimento de Softwares no Centro Universitário SENAC (S.J. do Rio Preto), Graduado em Ciência da Computação na Universidade Paulista UNIP (S. J. do Rio Preto) e Programador de Micro Computador no SENAC (Barretos).
Atualmente atua como Analista / Desenvolvedor de Sistemas nas linguagens C#.Net (Aplicações Desktop, Web e Mobile), Visual Basic 6 e VBA. Possui conhecimentos nos bancos de dados FireBird, MySql, Sql Server e Oracle.