Pรกgina 1
PDF: De acordo com a Adobe "... Portable Document Format (PDF) é o verdadeiro padrão aberto para distribuição eletrônica mundial de documentos. Trata-se de um formato universal de arquivos que preserva todas as fontes, itens de formatação, cores e gráficos de qualquer documento original, independentemente do aplicativo e da plataforma utilizados para sua criação. Os arquivos Adobe PDF são compactos e podem ser compartilhados, exibidos, navegados e impressos exatamente da forma pretendida por qualquer pessoa ...".
Página 2
Relatórios PDF - iText Estas transparências tem como objetivo demonstrar através de exemplos simples como utilizar a biblioteca iText para gerar documentos no formato PDF através de programas escritos em Java. O iText é uma biblioteca de código aberto para gerar e manipular documentos formato PDF, desenvolvida por Bruno Lowagie e Paulo Soares. Além de ser muito fácil de usar o iText é bem completo com diversos recursos úteis para a geração de arquivos em formato PDF.
Página 3
Recursos do iText Geração de documentos contendo textos, tabelas, listas e imagens; Suporta o uso de vários tipos de fontes no documento; A página pode ser formatada em diversos tamanhos (A4, Letter, etc); Permite rotacionar e redimensionar imagens; As imagens podem estar localizadas fisicamente na mesma máquina ou em um servidor HTTP remoto; Suporta a geração de código de barras para ser adicionado ao documento; Suporta o uso de Cabeçalhos e rodapé. Pode ser usado tanto em aplicações Desktop, Web (Servlets e JSP).
Página 4
Recursos do iText Endereço do projeto iText http://www.lowagie.com/iText/ Endereço para download da biblioteca iText http://prdownloads.sourceforge.net/itext/itext-1.02b.jar
Importar biblioteca para a aplicação import com.lowagie.text.*; import com.lowagie.text.pdf.PdfWriter; Importar biblioteca criar arquivos import java.io.FileOutputStream; import java.io.IOException; Página 5
Aplicação com iText Estas transparências tem como objetivo demonstrar através de exemplos simples como utilizar a biblioteca iText para gerar documentos. Primeiro é necessário baixar a biblioteca iText itext-1.02b.jar disponível no site lowagie. Inserir a biblioteca na aplicação conforme fig. abaixo.
Página 6
Comentário para código Código para criar um objeto da classe Document que será construído o PDF. Document doc = new Document(); Document doc = new Document( PageSize.A4 ); Associar o Documento criado para um arquivo PDF. PdfWriter.getInstance( doc, new FileOutputStream(“exemplo.pdf”);
Adicionando informacao ao documento tipo parágrafo.
doc.add(new Paragraph(“Ola mundo PDF”)); Abrindo e fechando documento doc.open(); doc.close(); Página 7
Criando arquivo PDF Código utilizado para criar um arquivo PDF com um duas linhas de textos. Este código pode ser inserido na ação de um botão, no construtor de uma classe ou em um método qualquer. { Document doc = new Document(); try{ PdfWriter.getInstance(doc, new FileOutputStream(“arq.pdf"));
doc.open(); doc.add(new Paragraph(“Texto PDF! \n Ola mundo")); }catch( DocumentException e ) System.err.println(e.getMessage()); }catch(IOException ei) { System.err.println(ei.getMessage()); } doc.close(); import com.lowagie.text.*; } import com.lowagie.text.pdf.PdfWriter; import java.io.FileOutputStream; import java.io.IOException;
Página 8
Criando arquivo PDF Código utilizado para criar um arquivo PDF que captura as informações do jTextField e jTextArea e gera um arquivo PDF com estas informações. Este código pode ser inserido na ação de um botão, no construtor de uma classe e em um método qualquer.
gerapdf(s1, s2, s3 );
import com.lowagie.text.*; import com.lowagie.text.pdf.PdfWriter; import java.io.FileOutputStream; import java.io.IOException;
Página 9
Criando arquivo PDF public void gerapdf( String s1, String s2, String s3 ){ Document doc = new Document(); Paragraph info; try { PdfWriter.getInstance(doc, new FileOutputStream("novo2.pdf")); doc.open(); Font f = new Font(Font.HELVETICA, 20, Font.BOLDITALIC, new Color(0, 0, 255)); Paragraph cab = new Paragraph("Formulario de Cadastramento Simples\n",f); doc.add(cab); Image jpg = Image.getInstance("itext.jpg"); doc.add(jpg); Font f1 = new Font(Font.TIMES_ROMAN, 14, Font.BOLD, new Color(0, 255, 255)); info = new Paragraph("Nome: "+ s1 + "\n", f1); doc.add(info); info = new Paragraph("Cidade: "+ s2 + "\n", f1); doc.add(info); info = new Paragraph("Conteudo: "+ s3 + "\n", f1); doc.add(info); } catch (DocumentException de) { System.err.println(de.getMessage()); } catch (IOException ioe) { System.err.println(ioe.getMessage()); } doc.close(); } Pรกgina 10
Criando arquivo PDF
Pรกgina 11
Criando arquivo PDF Código utilizado para criar um arquivo PDF com Figura, cabeçalho e tabelas. Recebe o numero de colunas a ser criada para a tabela. PdfTable tb = new PdfTable(4) O método setWidths, configura a largura das colunas atraves de um veltor de inteiros. tb.setWidths(new int [ ] { 10, 20, 40 } ); Cria uma célula para a tabela com o parágrafo PdfCell cell = new PdfCell (new Paragraph(“Ola”)) Mescla 3 colunas da tabela cell.Colspan(3) Adiciona linhas na tabela tb.addCell()
Página 12
Criando arquivo PDF Document doc = new Document(); Paragraph info; try { PdfWriter.getInstance(doc, new FileOutputStream("novo3.pdf")); doc.open(); Font f = new Font(Font.HELVETICA, 20, Font.BOLDITALIC, new Color(0, 0, 255));
Paragraph cab = new Paragraph("Formulario de Tabela Simples\n",f); doc.add(cab); Image jpg = Image.getInstance("itext.jpg"); doc.add(jpg);
Pรกgina 13
Criando arquivo PDF PdfPTable table = new PdfPTable(3); PdfPCell cell = new PdfPCell(new Paragraph("Univesidade Unipac")); cell.setBackgroundColor(new Color(0xC0, 0xC0, 0xC0)); cell.setColspan(3); table.addCell(cell); table.addCell("1"); table.addCell("2"); table.addCell("3"); table.addCell("4"); table.addCell("5"); table.addCell("6");
Pรกgina 14
Criando arquivo PDF cell = new PdfPCell(new Paragraph("Coluna 1")); cell.setBorderColor(new Color(255, 0, 0)); table.addCell(cell); cell = new PdfPCell(new Paragraph("Coluna 2 e 3")); cell.setColspan(2); cell.setBackgroundColor(new Color(0xC0, 0xC0, 0xC0));
table.addCell(cell); doc.add(table); } catch (DocumentException de) { System.err.println(de.getMessage() );
} catch (IOException ioe) { System.err.println(ioe.getMessage()); } doc.close();
Pรกgina 15
Criando arquivo PDF Código utilizado para criar um arquivo PDF com Figura, cabeçalho e tabelas. Os dados estão disponível na matriz dados.
Página 16
Criando arquivo PDF
Pรกgina 17
Criando arquivo PDF
Pรกgina 18
Criando arquivo PDF
Pรกgina 19
Classe: Chunk (trecho) import java.io.FileOutputStream; Chunk é pequeno texto que import java.io.IOException; import java.util.*; pode ser adicionado no import java.awt.Color; documento. O conteúdo de import com.lowagie.text.*; com.lowagie.text.pdf.BaseFont; um Chunk é font, tamanho, import import com.lowagie.text.Chunk; cor. import com.lowagie.text.pdf.PdfContentByte;
Document doc = new Document(); try { PdfWriter.getInstance(doc, new FileOutputStream("novo.pdf")); doc.open();
Chunk unipac = new Chunk("Universidade Unipac"); float superscript = 12.0f; unipac.setTextRise(superscript); unipac.setBackground(new Color(0xFF, 0xDE, 0xAD));
Página 20
Criando arquivo PDF Chunk sistemas = new Chunk(" Sistemas de Informação "); sistemas.setFont(new Font(Font.HELVETICA, 18, Font.BOLDITALIC, new Color(0, 0, 255)) );
Chunk ciencia = new Chunk("Ciencia da Computação"); float subscript = -8.0f; ciencia.setTextRise(subscript); ciencia.setUnderline(new Color(0xFF, 0x00, 0x00), 15.0f, 0.0f, -5.0f + subscript, 0.0f, PdfContentByte.LINE_CAP_ROUND); doc.add(unipac); doc.add(sistemas); doc.add(ciencia); } catch (DocumentException de) { System.err.println(de.getMessage()); } catch (IOException ioe) { System.err.println(ioe.getMessage()); } doc.close();
Página 21
Relatório – Banco de Dados Para mostrar o resultado de uma consulta no banco de dados em um relatório PDF é necessário desenvolver um método novo método na classe DB que executa a consulta no banco utilizando o método executeQuery() e retornando os dados através da variável ResultSet.
Página 22
Relatório – Banco de Dados Depois, instancia a classe DB e chama o método retornarDados(), este método deve ser criado na classe DB. O resultado deve ser tratado pelo métodos .next() e .getString().
Página 23
Relatório – Banco de Dados
Página 24
Criando arquivo PDF
Pรกgina 25