Caro amigo leitor,
No artigo deste mês iremos abordar um tema muito utilizado em diversos
momentos, o uso de arquivos no formato “PDF” em sistemas .Net. Para fins de
curiosidade, este tipo de arquivo
foi desenvolvido pela “Adobe Systems” em 1993, para representar documentos de
maneira independente do aplicativo, do hardware e do sistema operacional usados
para criá-los. (Fonte: https://pt.wikipedia.org)
Utilizaremos o “Microsoft
Visual Studio Community 2017” junto com o gerenciador de pacotes “NuGet”, tendo
como base o uso da linguagem C# através de Formulários Windows. (Ressalto que
poderíamos desenvolver com base em Formulários Web também)
De acordo com sua documentação,
a biblioteca “iTextSharp” permite também criar, adaptar, adicionar
funcionalidades em formato PDF com muita facilidade, se tornando uma solução
completa e bem documentada. Não podemos esquecer que a mesma é gratuita. Abaixo
algumas características:
·
Geração de
documentos e relatórios com base em dados de um arquivo XML ou de um Banco de
Dados;
·
Possibilidade para adicionar marcadores
(bookmarks), números de página, marcas d'água e outros recursos aos documentos
PDF existentes;
·
Dividir ou concatenar páginas a partir
de arquivos PDF existentes;
·
Preenchimento de formulários
interativos;
Como esta biblioteca não é específica da arquitetura .NET, possuímos
também versões para Android e Java.
Criando um novo projeto
Inicie um novo projeto clicando em “Arquivo/Novo/Projeto” escolhendo a
opção “Aplicativo do Windows Forms”. O nosso formulário terá apenas um botão
para chamar o arquivo (PDF) criado dinamicamente pela biblioteca. Para isto
adicione no “Form” um componente “Button”. Ver Imagem 01.
![]() |
Figura 01: Criando o formulário de exemplo. |
Instalando a biblioteca
“iTextSharp”
Como já vimos em diversos outros artigos, a instalação da biblioteca
“iTextSharp” será com base no gerenciador de pacotes “NuGet”. Contamos com esta
facilidade para implementar recursos interessantes em nossos projetos.
Poderemos realizar esta tarefa através de linhas de comando ou pela interface
gráfica. Optaremos pela segunda opção clicando em “Ferramentas/Gerenciador de
Pacotes do NuGet/Gerenciador de Pacotes do NuGet para a solução...”. Na caixa
de diálogo procure por “iTextSharp” e logo na primeira linha encontraremos
nosso componente, conforme demonstra a Imagem 02.
![]() |
Figura 02: Instalando o iTextSharp. |
Ao clicar no botão “instalar” o mesmo será adicionado no projeto
corrente. No Gerenciador de Soluções podemos conferir a referência
“itextsharp”. Ver Imagem 03.
![]() |
Figura 03: Referência. |
Codificando o
Exemplo
Precisaremos importar alguns “Namespaces” para o bom funcionamento.
using
System;
using
System.Windows.Forms;
using
System.IO
using
iTextSharp.text;
using iTextSharp.text.pdf;
A biblioteca “System.IO” se encarregará
de trabalhar com a entrada e saída de arquivos, a “iTextSharp.Text”
implementará a classe “Document”, “Paragraph”, entre outros métodos. Já a
“iTextSharp.text.pdf” classes pertinentes para instanciar diretamente o arquivo
PDF, tais como a “PdfWriter”.
Toda a
codificação será no evento “Click” do “Button”. Ver Listagem 01.
private void
btnPdf_Click(object sender, EventArgs e)
{
Document
doc = new Document(PageSize.A4);
string caminho = Application.StartupPath + @"\Exemplo.pdf";
PdfWriter writer
= PdfWriter.GetInstance(doc, new
FileStream(caminho, FileMode.Create));
try
{
doc.SetMargins(30, 30, 70, 70);
doc.AddCreationDate();
doc.Open();
Paragraph
par = new Paragraph();
par.Alignment
= Element.ALIGN_JUSTIFIED;
par.Add("Teste
na criação de um arquivo PDF");
doc.Add(par);
doc.Close();
System.Diagnostics.Process.Start(caminho);
}
catch (Exception Ex)
{
MessageBox.Show("Ocorreu um erro ao gerar o PDF - Erro:", Ex.Message);
}
}
Listagem 01.
Listagem 01.
O primeiro passo seria de
criar uma variável do tipo “Document”, o qual irá estipular o tipo de folha,
como por exemplo A4. Já a outra variável “caminho” informaremos o local onde o
arquivo será criado. O objeto “PdfWriter” encapsulará o “FileStream” gerado,
com base em dois parâmetros, sendo o caminho e o tipo de criação.
Após preenchermos todos
estes pré-requisitos dentro do bloco “Try/Catch” trataremos por completo o
código. No objeto “Document” iremos atribuir as margens do papel com a
propriedade “SetMargins” e com o método “AddCreationDate()” informaremos a
Data/Hora corrente. O método “Open()” iniciará o documento. Para trabalhar com
parágrafos usaremos o objeto “Paragraph” informando as propriedades “Alignment”
e “Add”. Adicionaremos no documento através do método “doc.Add”.
Para gravar todas estas alterações devermos invocar o método “Close()”. O
código “System.Diagnostics.Process.Start”
abrirá o PDF após sua criação ou alteração. Ver imagem 04.
![]() |
Figura 04: Gerando e abrindo o PDF. |
Poderíamos também implementar mais algumas outras funcionalidades no
exemplo acima, como por exemplo um outro parágrafo contendo um alinhamento
central, com uma fonte do tipo Negrito com tamanho 18.
Exemplo:
Font
Fonte = new Font();
Fonte.Size
= 18;
Fonte.SetStyle(1);
//Negrito
Paragraph
paragrafo = new Paragraph("", Fonte);
paragrafo.Alignment
= Element.ALIGN_CENTER;
paragrafo.Font
= Fonte;
paragrafo.Add("Exemplo formatando tamanho e estilo da Fonte");
doc.Add(paragrafo);
Podemos conferir o arquivo
PDF na Figura 05.
![]() |
Figura 05: Exemplo de formatação. |
Conclusões
A ideia deste artigo foi de demonstrar a facilidade para adquirir,
instalar e utilizar a biblioteca “iTextSharp”, nos permitindo implementar
facilmente o uso de arquivos PDF. Com pouca codificação, foi desenvolvido um
exemplo básico para demonstrar algumas das principais funcionalidades desta
fabulosa ferramenta.
Um abraço e até o mês que vem!
Referências
Nenhum comentário:
Postar um comentário