[Dicas-L] Gerando PDF Utilizando Java

6
Página 1 [Dicas-L] Gerando PDF utilizando Java 02/04/2011 18:34:47 http://www.dicas-l.com.br/arquivo/g erando_pdf_utilizando_jav a.php HOME ARQUIVO COLUNAS CURS OS ARTI GOS HOT LI NKS ENVI AR DICA F. A. Q. CADASTRO CONTATO RS S Visite também: Segurança Linux · UnderLinux · VivaOLinux · LinuxSecurity · NoticiasLinux · BR-Linux · SoftwareLivre.org  · [mais] Busca  ok Navcity NC430 a partir de R$ 499,00 Sony Bravia KDL55EX505 LCD ll a partir de R$ 4.399,00 Outras ofertas TV LCD TV Plasma DVD Player  Você está aqui:  Home  Arquivo Dicas-L  ASSINE A LISTA DICAS-L OK Receba diariamente por emailas dicas de informática publicadas neste site Para se descadastrar, clique aqui. GERANDO  PDF  UTILIZANDO JAVA Colaboração: Carlos Tosin  Data de Publicação: 01 de junho de 2010 Tutorial Api Pdf Descubra a Central de Agências Oficial do Google AdWords, Aqui! google.com.br/adwords/webexpert O formato PDF é muito utilizado porque se trata de uma forma fácil de distribuir documentos, além de ser possível visualizá-los em qualquer plataforma. Como documentos PDF são amplamente utilizados, existemd iversas maneiras de gerá-los. E é claro queo Java não poderia ficar de fora! Através do uso da API iText , você pode criar seus próprios arquivos PDF através do Java. O objeti vo deste artigo é mostrar comogerar documentos PDF em Java, usando a API iText.  Você aprenderá como configurar os elementos da página do  documento, além de como inserir textos, imagens e tabelas. A API  ITEXT O iText é a API utilizada para gerar PDFs. Elaé gratui ta e open source . Para utiliz ar o iText em suaaplicação Java , entre no site http://itextpdf.come baixe o arquivo .JAR referente ao iText 5.0.2 . Depois basta adicionar o iText ao classpath da sua aplicação e utilizar as funcionalidades desta API, que vai possibilitar que você gere os seus documentos PDF. O iText funcio na com a versão 5 do Javaou superior. Documento É hora de começarmo s a aprendar a usaro iText! E a primei ra class e que você deveconhecer é a classe Document . Ela repres enta o documento PDF, e para criar um documento PDF do tamanho A4 no modo retrato, o código fica assim:  D = D( .A4);  A classe PageSize possui diversasconstant es para tamanho s comuns de páginas( LETTER, NOTE, A0, A1, A 2, etc.). É possí vel també m defini r o tamanho manualmente, destaforma:   = (595, 841);  D = D(); Neste caso , é usadaa classe  Rectangle, que representa as dimensões de um retângulo. Sistema de medidas É importante destacar como funcionam as medidas utilizadas pelo iText. Se você quiser especificar as medidas das pági nas dos documentos ou das margens, você deve terem ment e que você deve utilizar pontos. Como estamos mais acostumados a trabalhar na escala métrica, Submarino.com.br Encontre imóveis, apartamentos e casas a venda no Imobilien Saiba mais Roupas, moda e bolsas femininas no MuccaShop.  Anúncios classificados e buscador de classificados carros, classificados casas e classificados emprego Inversão de URLs  Aprenda Inglês em Casa Metodo inovador e cr iativo, para quem tem pouco tempo. Veja os depoimentos de nossos alunos. Saiba mais  Carlos J E Campos Info APF e COBOL Material, Exemplos e Artigos www.carloscamposinfo.com UML-Orientação a Objetos Consultoria e Treinamento com Enterprise Architect www.oatsolutions.com. br Model Driven Development Ferramenta de modelagem e geração de software com base em templates www.infopar.com Software Scrum Grátis Ferramenta Web para Gerência de Projetos Ágeis Scrum - Free www.scrumhalf.com.br Curs o Online de Dephi 3 x R$29,97 SUPORTE 100% Incluso. Estude em casa, com certificação! www.treinaweb.com.br  Procure pela casa ou apartamento ideal à  venda ou para aluguel na busca inteligente do Imohoo Buscar imóveis

Transcript of [Dicas-L] Gerando PDF Utilizando Java

Page 1: [Dicas-L] Gerando PDF Utilizando Java

8162019 [Dicas-L] Gerando PDF Utilizando Java

httpslidepdfcomreaderfulldicas-l-gerando-pdf-utilizando-java 16

Paacutegina 1cas-L] Gerando PDF utilizando Java

02042011 183447wwwdicas-lcombrarquivogerando_pdf_utilizando_javaphp

HOME ARQUIVO COLUNAS CURSOS ARTIGOS HOT LINKS ENVIAR DICA FAQ CADASTRO CONTATO RSS

Visite tambeacutem Seguranccedila Linux middot UnderLinux middot VivaOLinux middot LinuxSecurity middot NoticiasLinux middot BR-Linux middot SoftwareLivreorg middot [mais]

Busca ok

Navcity NC430

a partir de

R$ 49900

Sony Bravia

KDL55EX505 LCD

lla partir de

R$ 439900

Outras ofertas

TV LCD

TV Plasma

DVD Player

Vocecirc estaacute aqui Home rarrrarrrarrrarr Arquivo Dicas-L

ASSINE A LISTA D ICAS-L

OK

Receba diariamente por emailas dicasde informaacutetica publicadas neste sitePara se descadastrar clique aqui

GERANDO PDF UTILIZANDO JAVA

Colaboraccedilatildeo Carlos Tosin

Data de Publicaccedilatildeo 01 de junho de 2010

Tutorial Api Pdf

Descubra a Central de Agecircncias Oficial do Google AdWords Aqui

googlecombradwordswebexpert

O formato PDF eacute muito utilizado porque se trata de uma forma faacutecil de distribuirdocumentos aleacutem de ser possiacutevel visualizaacute-los em qualquer plataforma

Como documentos PDF satildeo amplamente utilizados existemd iversas maneiras de geraacute-los E eacuteclaro queo Java natildeo poderia ficar de fora Atraveacutes do uso da API iText vocecirc pode criar seusproacuteprios arquivos PDF atraveacutes do Java

O objetivo deste artigo eacute mostrar comogerar documentos PDF em Java usando a API iText Vocecirc aprenderaacute como configurar os elementos da paacutegina do documento aleacutem de como inserirtextos imagens e tabelas

A API ITEXT

O iText eacute a API utilizada para gerar PDFs Elaeacute gratuita e open source Para utilizar o iText emsuaaplicaccedilatildeo Java entre no site httpitextpdfcom e baixe o arquivo JAR referente aoiText 502 Depois basta adicionar o iText ao classpath da sua aplicaccedilatildeo e utilizar asfuncionalidades desta API que vai possibilitar que vocecirc gere os seus documentos PDF O iTextfunciona com a versatildeo 5 do Javaou superior

DocumentoEacute hora de comeccedilarmos a aprendar a usaro iText E a primeira classe que vocecircdeveconhecer eacute a classeDocument Ela representa o documento PDF e para criar umdocumento PDF do tamanho A4 no modo retrato o coacutedigo fica assim

D983151983139983157983149983141983150983156 983140983151983139 = 983150983141983159 D983151983139983157983149983141983150983156(983120983137983143983141983123983145983162983141A4)

A classe PageSize possui diversasconstantes para tamanhos comuns de paacuteginas( LETTERNOTE A0 A1 A 2 etc) Eacute possiacutevel tambeacutem definir o tamanho manualmente destaforma

983122983141983139983156983137983150983143983148983141 983154983141983139983156 = 983150983141983159 983122983141983139983156983137983150983143983148983141(595 841)

D983151983139983157983149983141983150983156 983140983151983139 = 983150983141983159 D983151983139983157983149983141983150983156(983154983141983139983156)

Neste caso eacute usadaa classe Rectangle que representa as dimensotildees de um retacircngulo

Sistema de medidas

Eacute importante destacar como funcionam as medidas utilizadas pelo iText Se vocecirc quiserespecificar as medidas das paacuteginas dos documentos ou das margens vocecirc deve terem ment eque vocecirc deve utilizar pontos Como estamos mais acostumados a trabalhar na escala meacutetrica

Submarinocombr

Encontre imoacuteveis

apartamentos e casas

a venda no Imobilien

Saiba mais

Roupas moda e bolsas

femininas noMuccaShop

Anuacutencios classificados

e buscador declassificados carrosclassificados casas eclassificados emprego

Inversatildeo de URLs

Aprenda Inglecircs em CasaMetodo inovador e criativo para

quem tem pouco tempo Veja osdepoimentos de nossos alunos

Saiba mais

Carlos J E Campos

Info

APF e COBOL MaterialExemplos e Artigoswwwcarloscamposinfocom

UML-Orientaccedilatildeo a

Objetos

Consultoria eTreinamento comEnterprise Architectwwwoatsolutionscom br

Model Driven

DevelopmentFerramenta demodelagem e geraccedilatildeode software com baseem templateswwwinfoparcom

Software Scrum

Graacutetis

Ferramenta Web para

Gerecircncia de ProjetosAacutegeis Scrum - Freewwwscrumhalfcombr

Curso Online de

Dephi

3 x R$2997 SUPORTE100 Incluso Estudeem casa comcertificaccedilatildeowwwtreinawebcombr

Procure pela casa ou

apartamento ideal agrave venda ou para aluguel

na busca inteligente doImohoo

Buscar imoacuteveis

8162019 [Dicas-L] Gerando PDF Utilizando Java

httpslidepdfcomreaderfulldicas-l-gerando-pdf-utilizando-java 26

Paacutegina 2cas-L] Gerando PDF utilizando Java

02042011 183447wwwdicas-lcombrarquivogerando_pdf_utilizando_javaphp

vocecirc pode escreverum coacutedigo que faccedila a conversatildeo da escala meacutetrica para pontos A relaccedilatildeo eacute254cm = 72 pontos

No exemplo anterior o uso de 595x841 pontos define as paacuteginas do documento como tendotamanho 210x297 cm o que equivale ao tamanho A4

Margens das Paacuteginas

Para definir margens naspaacuteginas do documento bastaque elas sejam especificadas noconstrutor da classe Document como eacute feito a seguir

D983151983139983157983149983141983150983156 983140983151983139 = 983150983141983159 D983151983139983157983149983141983150983156(983120983137983143983141983123983145983162983141A4 72 72 72 72)

Lembre-se de especificar as margens em pontos e natildeo no sistema meacutetrico O coacutedigo acimadefine que o tamanho das paacuteginas seraacute A4 com margens de 2 54cm na esquerda direita emcima e embaixo

Preparando o documento para receber dados

Apoacutes a criaccedilatildeo do objeto que representa o documento eacute necessaacuterio seguir mais alguns passosantes de iniciarmosa inserccedilatildeo dos dados O coacutedigo que representaeste passo eacute mostrado aseguir

983119983157983156983152983157983156983123983156983154983141983137983149 983151983155 = 983150983141983159 F983145983148983141983119983157983156983152983157983156983123983156983154983141983137983149(983151983157983156983152983140983142)

983120983140983142983127983154983145983156983141983154983143983141983156I983150983155983156983137983150983139983141(983140983151983139 983151983155)

983140983151983139983151983152983141983150()

Vamos tentar entender o que eacute mostrado neste coacutedigo Primeiramente devemos criar umastream de saiacuteda indicando o destino do documento PDF Neste caso estamos interessados emgerar o documento em um arquivo portanto criamos um FileOutputStream indicando qual seraacuteo nome do arquivo de saiacuteda

Na sequecircncia eacute necessaacuterio chamar o meacutetodo getInstance() da classe PdfWriter para queeleassocie o documento agrave stream de saiacuteda

O uacuteltimo passo antes de iniciarmos a criaccedilatildeo do documento eacute abri -lo Isto eacute feito atraveacutes da

chamada ao meacutetodo open() Eacute importante que ao final da inserccedilatildeo dos dados no documento omesmo seja fechado atraveacutes do meacutetodo close() E outrodetalhe importante todas asmodificaccedilotildees nodocument o (como configuraccedilatildeo de margens e tamanho de paacuteginas) devem serfeitas antes da chamada aomeacutetodo close()

Gerando seu primeiro PDF em Java

Agora vocecirc jaacute sabe tudo o que precisa para comeccedilar a escrever o seu primeiro arquivo PDFusando o iText O coacutedigo abaixo mostra um exemplo completo da geraccedilatildeo de um arquivo PDFsimples usando o quevocecirc viu nesta parteinicial

983145983149983152983151983154983156 983146983137983158983137983145983151F983145983148983141983119983157983156983152983157983156983123983156983154983141983137983149

983145983149983152983151983154983156 983146983137983158983137983145983151983119983157983156983152983157983156983123983156983154983141983137983149

983145983149983152983151983154983156 983139983151983149983145983156983141983160983156983152983140983142983156983141983160983156D983151983139983157983149983141983150983156

983145983149983152983151983154983156 983139983151983149983145983156983141983160983156983152983140983142983156983141983160983156983120983137983143983141983123983145983162983141

983145983149983152983151983154983156 983139983151983149983145983156983141983160983156983152983140983142983156983141983160983156983120983137983154983137983143983154983137983152983144

983145983149983152983151983154983156 983139983151983149983145983156983141983160983156983152983140983142983156983141983160983156983152983140983142983120983140983142983127983154983145983156983141983154

983152983157983138983148983145983139 983139983148983137983155983155 983120983154983145983149983141983145983154983151983120DF 983163

983152983157983138983148983145983139 983155983156983137983156983145983139 983158983151983145983140 983149983137983145983150(983123983156983154983145983150983143983131983133 983137983154983143983155) 983156983144983154983151983159983155 E983160983139983141983152983156983145983151983150 983163 D983151983139983157983149983141983150983156 983140983151983139 = 983150983157983148983148

983119983157983156983152983157983156983123983156983154983141983137983149 983151983155 = 983150983157983148983148

983156983154983161 983163

983139983154983145983137 983151 983140983151983139983157983149983141983150983156983151 983156983137983149983137983150983144983151 A4 983149983137983154983143983141983150983155 983140983141 254983139983149

983140983151983139 = 983150983141983159 D983151983139983157983149983141983150983156(983120983137983143983141983123983145983162983141A4 72 72 72 72)

983139983154983145983137 983137 983155983156983154983141983137983149 983140983141 983155983137983277983140983137

983151983155 = 983150983141983159 F983145983148983141983119983157983156983152983157983156983123983156983154983141983137983149(983151983157983156983152983140983142)

983137983155983155983151983139983145983137 983137 983155983156983154983141983137983149 983140983141 983155983137983277983140983137 983137983151

983120983140983142983127983154983145983156983141983154983143983141983156I983150983155983156983137983150983139983141(983140983151983139 983151983155)

983137983138983154983141 983151 983140983151983139983157983149983141983150983156983151

983140983151983139983151983152983141983150()

983137983140983145983139983145983151983150983137 983151 983156983141983160983156983151 983137983151 983120DF

983120983137983154983137983143983154983137983152983144 983152 = 983150983141983159 983120983137983154983137983143983154983137983152983144(983117983141983157 983152983154983145983149983141983145983154983151 983137983154983153983157983145983158983151

983120DF)

983140983151983139983137983140983140(983152)

983165 983142983145983150983137983148983148983161 983163

983145983142 (983140983151983139 = 983150983157983148983148) 983163

983142983141983139983144983137983149983141983150983156983151 983140983151 983140983151983139983157983149983141983150983156983151

983140983151983139983139983148983151983155983141()

983165

8162019 [Dicas-L] Gerando PDF Utilizando Java

httpslidepdfcomreaderfulldicas-l-gerando-pdf-utilizando-java 36

Paacutegina 3cas-L] Gerando PDF utilizando Java

02042011 183447wwwdicas-lcombrarquivogerando_pdf_utilizando_javaphp

983145983142 (983151983155 = 983150983157983148983148) 983163

983142983141983139983144983137983149983141983150983156983151 983140983137 983155983156983154983141983137983149 983140983141 983155983137983277983140983137

983151983155983139983148983151983155983141()

983165

983165

983165

983165

Este eacute o esqueleto baacutesico de coacutedigo que vocecirc iraacute utilizar ao criar seus arquivos PDF mudandoapenaso conteuacutedo Na sequecircncia vocecirc veraacute mais detalhes sobrea classe Paragraph

TEXTOS

A forma mais faacutecil de adicionar textos ao PDF eacute utilizar a classe Paragraph Esta classe permite

que vocecirc adicione blocos de texto ao documento O texto eacute inserido na paacutegina como se vocecircestivesse utilizando um editor de textos O iText respeitaas margens que vocecirc especificou parao documento e tambeacutemgerencia automaticamente as quebras de linha Observe o coacutedigoabaixo que gera dois blocosde textocomo saiacuteda

983120983137983154983137983143983154983137983152983144 9831521 = 983150983141983159 983120983137983154983137983143983154983137983152983144(983117983141983157 983152983154983145983149983141983145983154983151 983137983154983153983157983145983158983151 983120DF)

983140983151983139983137983140983140(9831521)

983120983137983154983137983143983154983137983152983144 9831522 = 983150983141983159 983120983137983154983137983143983154983137983152983144(E983155983156983151983157 983157983156983145983148983145983162983137983150983140983151 983137 983139983148983137983155983155983141

983120983137983154983137983143983154983137983152983144 983152983137983154983137 983139983154983145983137983154 983157983149 983138983148983151983139983151 983140983141 983156983141983160983156983151 983150983137 983143983141983154983137983271983267983151 983140983151 983149983141983157 983152983154983145983149983141983145983154983151

983137983154983153983157983145983158983151 983120DF)

983140983151983139983137983140983140(9831522)

O construtor da classe Paragraph recebe o texto comoparacircmetro Depois basta chamar o meacutetodo

add() para adicionar o texto ao PDF

Alterando a fonte Nem sempre a fonte utilizada porpadr atildeo pelo iText eacute a fonte quevocecircdeseja nos seus documentos Logo eacute possiacutevel que vocecirc altere a fonte dos textos quevocecirc

adiciona ao PDF

A fonte eacute representada pela classe comitextpdf textFont Basta criar um objeto desta classe coma fonte desejada e associaacute-lo ao texto Observe o exemplo

F983151983150983156 983142 = 983150983141983159 F983151983150983156(F983151983150983156F983137983149983145983148983161C983119983125983122IE983122 20 F983151983150983156B983119983116D)

O coacutedigo acima cria uma fonte da famiacutelia Courier tamanho 20 itaacutelica O enum FontFamily e aclasse Font possuem tambeacutemoutras constantes para vocecirc explorar

A associaccedilatildeo entre a fonte e o texto eacute feita no construtor da classe Paragraph destaforma

983120983137983154983137983143983154983137983152983144 9831521 = 983150983141983159 983120983137983154983137983143983154983137983152983144(983117983141983157 983152983154983145983149983141983145983154983151 983137983154983153983157983145983158983151 983120DF 983142)

Pronto Vocecirc jaacutetem um tiacutetulo para o seuPDF Observecomo ficouo resultado

[httpwwwdicas-lcombrimagensitext_01jpg ]

Alinhamento Muitas vezes o alinhamento agrave esquerda natildeo eacute o suficiente O iText proporciona

outrasformas de alinhamento do texto Observe

9831521983155983141983156A983148983145983143983150983149983141983150983156(E983148983141983149983141983150983156A983116IG983118983135CE983118983124E983122)

Omeacutetodo setAlignment() permite especificar um alinhamentop ara o bloco Neste caso p1 seraacutealinhado no centroda linha Observe

[httpwwwdicas-lcombrimagensitext_02jpg ]

Espaccedilamento Caso vocecirc deseje ter um controle maior sobre o espaccedilamento utilizado antes edepois de um bloco de texto vocecirc pode utilizar os meacutetodos setSpacingBefore () e setSpacingAfter

() Observe

9831521983155983141983156983123983152983137983139983145983150983143A983142983156983141983154(20)

Neste exemplo apoacutes p 1 ser adicionado aodocument o seraacute deixado um espaccedilo em branco extrade 20 pontos Observe

[httpwwwdicas-lcombrimagensitext_03jpg ]

IMAGENS

8162019 [Dicas-L] Gerando PDF Utilizando Java

httpslidepdfcomreaderfulldicas-l-gerando-pdf-utilizando-java 46

Paacutegina 4cas-L] Gerando PDF utilizando Java

02042011 183447wwwdicas-lcombrarquivogerando_pdf_utilizando_javaphp

Damesma formaque textos imagens tambeacutempodem ser inseridasno documento PDF A maneira mais faacutecil de fazer isto eacute atraveacutes da classe comitextpdftextImage Ela eacute utilizada destaforma

I983149983137983143983141 983145983149983143 = I983149983137983143983141983143983141983156I983150983155983156983137983150983139983141(983155983151983142983156983138983148983157983141983146983152983143)

983145983149983143983155983141983156A983148983145983143983150983149983141983150983156(E983148983141983149983141983150983156A983116IG983118983135CE983118983124E983122)

983140983151983139983137983140983140(983145983149983143)

Bastachamar o meacutetodo getInstance() da classe passando o caminho da imagemque devesercarregada e depois adicionar a imagem ao documento atraveacutes do meacutetodo add() Os meacutetodos

setAlignment() setSpacingBefore() e setSpacingAfter() jaacute vistos anteriormente tambeacutem podem seraplicados agraves imagens Observe como fica o resultado

[http wwwsoftbluecombrpublicblog7itext_04jpg]

TABELAS

O iText possui tambeacutem suporte agrave criaccedilatildeo de tabelas Observe uma tabela simples abaixo queconteacutem algumas palavras reservadasd o Java

[http wwwsoftbluecombrpublicblog7itext_05jpg]

O coacutedigo que gera a tabela acima eacute o seguinte

983120983140983142983120983124983137983138983148983141 983156983137983138983148983141 = 983150983141983159 983120983140983142983120983124983137983138983148983141(3)

983120983140983142983120C983141983148983148 983144983141983137983140983141983154 = 983150983141983159 983120983140983142983120C983141983148983148(983150983141983159 983120983137983154983137983143983154983137983152983144(A983148983143983157983149983137983155 983120983137983148983137983158983137983154983137983155

983122983141983155983141983154983158983137983140983137983155 983140983151 J983137983158983137))

983144983141983137983140983141983154983155983141983156C983151983148983155983152983137983150(3)

983156983137983138983148983141983137983140983140C983141983148983148(983144983141983137983140983141983154)

983156983137983138983148983141983137983140983140C983141983148983148(983137983138983155983156983154983137983139983156)

983156983137983138983148983141983137983140983140C983141983148983148(983141983160983156983141983150983140983155)

983156983137983138983148983141983137983140983140C983141983148983148(983145983149983152983151983154983156)

983156983137983138983148983141983137983140983140C983141983148983148(983159983144983145983148983141)

983156983137983138983148983141983137983140983140C983141983148983148(983145983142)

983156983137983138983148983141983137983140983140C983141983148983148(983155983159983145983156983139983144) 983140983151983139983137983140983140(983156983137983138983148983141)

Vamos tentar entender o que significa este coacutedigo Ao trabalhar com tabelas no iText vocecirc basicamente vai usar duas classes PdfPTable e PdfPCell A primeira representa a tabelaenquanto a uacuteltima representauma ceacutelulada tabela

A chamada new PdfPTable(3) cria uma tabela com 3 colunas de forma quea largura das colunaseacute a mesma Veremos na sequecircncia como especificar largurasdiferentes para cada coluna

Depois criamos um objeto da classe PdfPCell que iraacute representar o cabeccedilalho da nossa tabelaNo construtor do PdfPCell vocecirc pode passar um objeto Paragraph contendo o texto que seraacutecolocado na ceacutelula Uma caracteriacutestica importante do cabeccedilalho eacute que eledeve ocupar as 3colunas da tabela Por este motivo noacutes usamos o meacutetodo setColspan(3)

Toda vez que desejamos adicionar uma ceacutelula agrave tabela chamamos o meacutetodo addCell() Nestemeacutetodo podemos passar tanto objetos PdfPCell como os textos de cada ceacuteluladiretamente (nestecaso o proacuteprio iText gera o objeto PdfPCell internamente) Perceba que em nenhum momentovocecirc diz em qual linha ou coluna da tabela a ceacutelula seraacute inserida O iText vai inserindo asceacutelulas de cima para baixoe da esquerdapara a direita O gerenciamento da criaccedilatildeo de novas

linhaseacute feito de forma automaacutetica

Depois de preparar a tabela bastaadicionaacute -la ao documento atraveacutes da chamadadocadd(table)

Definindo a Largura das Colunas Comovimos anteriormente ao construirmosumatabela informando apenas o nuacutemero de colunas o iText deixa todas as colunas com o mesmotamanho o que nem sempre eacute o ideal

A melhor forma de especificar a largura das colunas da tabela eacute usar a forma relativa Elafunciona assim vocecirc indica qual o tamanho da coluna com relaccedilatildeo agrave largura total da tabelaObserve

983120983140983142983120983124983137983138983148983141 983156983137983138983148983141 = 983150983141983159 983120983140983142983120983124983137983138983148983141(983150983141983159 983142983148983151983137983156983131983133 983163 02983142 02983142 06983142 983165)

Ao passar um array de nuacutemeros no construtor da PdfPTable vocecirc estaacute indicando um tamanhorelativo para cada coluna Como o array tem 3 elementos a tabela teraacute trecircs colunas Agora vocecircdeve pensar da seguinte forma todas as colunas da tabela juntas representam 100 E n estecaso a primeiracoluna rep resenta 20 a segunda 20 e a terceira 60 Perceba queas duasprimeiras colunas teratildeo o mesmo tamanho e a terceira coluna seraacute trecircs vezes maior quecada

coluna anterior O resultado final fica assim

[http wwwsoftbluecombrpublicblog7itext_06jpg]

Mudando o tamanho e alinhamento da tabela O iTextpermite tambeacutemque vocecircespecifique qual o tamanho e o alinhamentoda tabela com relaccedilatildeo do documento Isto eacute feitoatraveacutes dos meacutetodos setWidthPercentage() e setHorizontalAlignment() Observe

8162019 [Dicas-L] Gerando PDF Utilizando Java

httpslidepdfcomreaderfulldicas-l-gerando-pdf-utilizando-java 56

Paacutegina 5cas-L] Gerando PDF utilizando Java

02042011 183447wwwdicas-lcombrarquivogerando_pdf_utilizando_javaphp

983156983137983138983148983141983155983141983156983127983145983140983156983144983120983141983154983139983141983150983156983137983143983141(600983142)

983156983137983138983148983141983155983141983156H983151983154983145983162983151983150983156983137983148A983148983145983143983150983149983141983150983156(E983148983141983149983141983150983156A983116IG983118983135983122IGH983124)

No exemplo acima estamosdefinindo que a tabela deve ocupar apenas60 da largura dodocumento Tambeacutemestamos definindo que ela deve ser alinhada agrave direita Observeoresultado

[http wwwsoftbluecombrpublicblog7itext_07jpg]

Customizando as bordas e cores Eacute possiacutevel tambeacutem customizarmos as bordasd as ceacutelulase as cores das bordas e das ceacutelulas Observe o coacutedigo abaixo

983144983141983137983140983141983154983155983141983156B983137983139983147983143983154983151983157983150983140C983151983148983151983154(B983137983155983141C983151983148983151983154983129E983116983116983119983127)

983144983141983137983140983141983154983155983141983156B983151983154983140983141983154983127983145983140983156983144B983151983156983156983151983149(20983142)

983144983141983137983140983141983154983155983141983156B983151983154983140983141983154C983151983148983151983154B983151983156983156983151983149(B983137983155983141C983151983148983151983154B983116983125E)

983144983141983137983140983141983154983155983141983156B983151983154983140983141983154(983122983141983139983156983137983150983143983148983141B983119983124983124983119983117)

Ele gera como resultado

[http wwwsoftbluecombrpublicblog7itext_08jpg]

Omeacutetodo setBackgroundColor() define a cor de fundo da ceacutelula O meacutetodo setBorderWitdhBottom

() define a largura da linha da borda inferior O meacutetodo setBorderColorBottom() define a cor da borda inferior E o meacutetodo setBorder() define em que parte das ceacutelula a borda deve existirUsando RectangleBOTTOM estamos definindo que existe apenas uma borda inferior na ceacutelula

Eacute importante que vocecirc saiba queexistem variantes dos meacutetodos que definem a largura e cor dalinha da borda Utilizamos neste exemplo os meacutetodo setBorderWidthBottom() e

setBorderColorBottom() para a borda inferior mas eacute possiacutevel tambeacutem usar os meacutetodosequivalentes top left e right (para borda superior esquerda e direita respectivamente

CONCLUSAtildeO

Este artigo introduziu a API iText usada para gerar documentos PDF em Java O que estaacute

descrito aqui eacute apenas uma visatildeo inicial de algumas funcionalidades importantes do iText Masmuita coisaaleacutem do que estaacute descrito aqui pode ser feita Consulte a paacutegina oficial da API parater maiores informaccedilotildees

Carlos Tosin eacute instrutor oficial dos Cursos On-Line de Java (assista

uma viacutedeo-aula graacutetis) da Softblue formado em Ciecircncia da Computaccedilatildeo

pela PUC-PR poacutes-graduado em Desenvolvimento de Jogos para

Computador pela Universidade Positivo e Mestre em Informaacutetica na

aacuterea de Sistemas Distribuiacutedos tambeacutem pela PUC-PR Trabalha

profissionalmente com Java haacute 7 anos e possui 4 anos de experiecircncia

no desenvolvimento de sistemas para a IBM dos Estados Unidos

utilizados a niacutevel mundial Atua haacute mais de 2 anos com cursos e

treinamentos de profissionais em g randes empresas Possui as

certificaccedilotildees da Sun SCJP SCJD SCWCD SCBCD SCEA IBM SOA e

ITIL Foundation

Veja a relaccedilatildeo completa dos artigos de Carlos Tosin

StumbleUpon Digg Delicious Twitter Recomendar Contato PDF RSS Imprimir

REFEREcircNCIAS ADICIONAIS

Referecircncias adicionais sobre os assuntos abordados nestesite podem ser encontradas em nossaBibliografia

AVALIE ESTA DICA

Avaliaccedilatildeo 31 5 (267votos)

Tutorial Api Pdf

Descubra a Central de Agecircncias Oficial do Google AdWords Aqui

googlecombradwordswebexpert

OPINIAtildeO DOS LEITORES

8162019 [Dicas-L] Gerando PDF Utilizando Java

httpslidepdfcomreaderfulldicas-l-gerando-pdf-utilizando-java 66

Paacutegina 6cas-L] Gerando PDF utilizando Java

02042011 183447wwwdicas-lcombrarquivogerando_pdf_utilizando_javaphp

Privacy Policy

O material veiculado neste site poderaacute ser livremente distribuiacutedopara fins natildeo comerciais segundo os termos da licenccedila da

Creative Commons

Seja o primeiro a comentar este artigo

Nome

Email

Me notifique sobre novos comentaacuterios nessa paacutegina

Oculte meu email

Texto

Para publicar seu comentaacuterio digite o coacutedigo contido na imagem acima

Enviar

Powered by Scriptsmill Comments Script

Page 2: [Dicas-L] Gerando PDF Utilizando Java

8162019 [Dicas-L] Gerando PDF Utilizando Java

httpslidepdfcomreaderfulldicas-l-gerando-pdf-utilizando-java 26

Paacutegina 2cas-L] Gerando PDF utilizando Java

02042011 183447wwwdicas-lcombrarquivogerando_pdf_utilizando_javaphp

vocecirc pode escreverum coacutedigo que faccedila a conversatildeo da escala meacutetrica para pontos A relaccedilatildeo eacute254cm = 72 pontos

No exemplo anterior o uso de 595x841 pontos define as paacuteginas do documento como tendotamanho 210x297 cm o que equivale ao tamanho A4

Margens das Paacuteginas

Para definir margens naspaacuteginas do documento bastaque elas sejam especificadas noconstrutor da classe Document como eacute feito a seguir

D983151983139983157983149983141983150983156 983140983151983139 = 983150983141983159 D983151983139983157983149983141983150983156(983120983137983143983141983123983145983162983141A4 72 72 72 72)

Lembre-se de especificar as margens em pontos e natildeo no sistema meacutetrico O coacutedigo acimadefine que o tamanho das paacuteginas seraacute A4 com margens de 2 54cm na esquerda direita emcima e embaixo

Preparando o documento para receber dados

Apoacutes a criaccedilatildeo do objeto que representa o documento eacute necessaacuterio seguir mais alguns passosantes de iniciarmosa inserccedilatildeo dos dados O coacutedigo que representaeste passo eacute mostrado aseguir

983119983157983156983152983157983156983123983156983154983141983137983149 983151983155 = 983150983141983159 F983145983148983141983119983157983156983152983157983156983123983156983154983141983137983149(983151983157983156983152983140983142)

983120983140983142983127983154983145983156983141983154983143983141983156I983150983155983156983137983150983139983141(983140983151983139 983151983155)

983140983151983139983151983152983141983150()

Vamos tentar entender o que eacute mostrado neste coacutedigo Primeiramente devemos criar umastream de saiacuteda indicando o destino do documento PDF Neste caso estamos interessados emgerar o documento em um arquivo portanto criamos um FileOutputStream indicando qual seraacuteo nome do arquivo de saiacuteda

Na sequecircncia eacute necessaacuterio chamar o meacutetodo getInstance() da classe PdfWriter para queeleassocie o documento agrave stream de saiacuteda

O uacuteltimo passo antes de iniciarmos a criaccedilatildeo do documento eacute abri -lo Isto eacute feito atraveacutes da

chamada ao meacutetodo open() Eacute importante que ao final da inserccedilatildeo dos dados no documento omesmo seja fechado atraveacutes do meacutetodo close() E outrodetalhe importante todas asmodificaccedilotildees nodocument o (como configuraccedilatildeo de margens e tamanho de paacuteginas) devem serfeitas antes da chamada aomeacutetodo close()

Gerando seu primeiro PDF em Java

Agora vocecirc jaacute sabe tudo o que precisa para comeccedilar a escrever o seu primeiro arquivo PDFusando o iText O coacutedigo abaixo mostra um exemplo completo da geraccedilatildeo de um arquivo PDFsimples usando o quevocecirc viu nesta parteinicial

983145983149983152983151983154983156 983146983137983158983137983145983151F983145983148983141983119983157983156983152983157983156983123983156983154983141983137983149

983145983149983152983151983154983156 983146983137983158983137983145983151983119983157983156983152983157983156983123983156983154983141983137983149

983145983149983152983151983154983156 983139983151983149983145983156983141983160983156983152983140983142983156983141983160983156D983151983139983157983149983141983150983156

983145983149983152983151983154983156 983139983151983149983145983156983141983160983156983152983140983142983156983141983160983156983120983137983143983141983123983145983162983141

983145983149983152983151983154983156 983139983151983149983145983156983141983160983156983152983140983142983156983141983160983156983120983137983154983137983143983154983137983152983144

983145983149983152983151983154983156 983139983151983149983145983156983141983160983156983152983140983142983156983141983160983156983152983140983142983120983140983142983127983154983145983156983141983154

983152983157983138983148983145983139 983139983148983137983155983155 983120983154983145983149983141983145983154983151983120DF 983163

983152983157983138983148983145983139 983155983156983137983156983145983139 983158983151983145983140 983149983137983145983150(983123983156983154983145983150983143983131983133 983137983154983143983155) 983156983144983154983151983159983155 E983160983139983141983152983156983145983151983150 983163 D983151983139983157983149983141983150983156 983140983151983139 = 983150983157983148983148

983119983157983156983152983157983156983123983156983154983141983137983149 983151983155 = 983150983157983148983148

983156983154983161 983163

983139983154983145983137 983151 983140983151983139983157983149983141983150983156983151 983156983137983149983137983150983144983151 A4 983149983137983154983143983141983150983155 983140983141 254983139983149

983140983151983139 = 983150983141983159 D983151983139983157983149983141983150983156(983120983137983143983141983123983145983162983141A4 72 72 72 72)

983139983154983145983137 983137 983155983156983154983141983137983149 983140983141 983155983137983277983140983137

983151983155 = 983150983141983159 F983145983148983141983119983157983156983152983157983156983123983156983154983141983137983149(983151983157983156983152983140983142)

983137983155983155983151983139983145983137 983137 983155983156983154983141983137983149 983140983141 983155983137983277983140983137 983137983151

983120983140983142983127983154983145983156983141983154983143983141983156I983150983155983156983137983150983139983141(983140983151983139 983151983155)

983137983138983154983141 983151 983140983151983139983157983149983141983150983156983151

983140983151983139983151983152983141983150()

983137983140983145983139983145983151983150983137 983151 983156983141983160983156983151 983137983151 983120DF

983120983137983154983137983143983154983137983152983144 983152 = 983150983141983159 983120983137983154983137983143983154983137983152983144(983117983141983157 983152983154983145983149983141983145983154983151 983137983154983153983157983145983158983151

983120DF)

983140983151983139983137983140983140(983152)

983165 983142983145983150983137983148983148983161 983163

983145983142 (983140983151983139 = 983150983157983148983148) 983163

983142983141983139983144983137983149983141983150983156983151 983140983151 983140983151983139983157983149983141983150983156983151

983140983151983139983139983148983151983155983141()

983165

8162019 [Dicas-L] Gerando PDF Utilizando Java

httpslidepdfcomreaderfulldicas-l-gerando-pdf-utilizando-java 36

Paacutegina 3cas-L] Gerando PDF utilizando Java

02042011 183447wwwdicas-lcombrarquivogerando_pdf_utilizando_javaphp

983145983142 (983151983155 = 983150983157983148983148) 983163

983142983141983139983144983137983149983141983150983156983151 983140983137 983155983156983154983141983137983149 983140983141 983155983137983277983140983137

983151983155983139983148983151983155983141()

983165

983165

983165

983165

Este eacute o esqueleto baacutesico de coacutedigo que vocecirc iraacute utilizar ao criar seus arquivos PDF mudandoapenaso conteuacutedo Na sequecircncia vocecirc veraacute mais detalhes sobrea classe Paragraph

TEXTOS

A forma mais faacutecil de adicionar textos ao PDF eacute utilizar a classe Paragraph Esta classe permite

que vocecirc adicione blocos de texto ao documento O texto eacute inserido na paacutegina como se vocecircestivesse utilizando um editor de textos O iText respeitaas margens que vocecirc especificou parao documento e tambeacutemgerencia automaticamente as quebras de linha Observe o coacutedigoabaixo que gera dois blocosde textocomo saiacuteda

983120983137983154983137983143983154983137983152983144 9831521 = 983150983141983159 983120983137983154983137983143983154983137983152983144(983117983141983157 983152983154983145983149983141983145983154983151 983137983154983153983157983145983158983151 983120DF)

983140983151983139983137983140983140(9831521)

983120983137983154983137983143983154983137983152983144 9831522 = 983150983141983159 983120983137983154983137983143983154983137983152983144(E983155983156983151983157 983157983156983145983148983145983162983137983150983140983151 983137 983139983148983137983155983155983141

983120983137983154983137983143983154983137983152983144 983152983137983154983137 983139983154983145983137983154 983157983149 983138983148983151983139983151 983140983141 983156983141983160983156983151 983150983137 983143983141983154983137983271983267983151 983140983151 983149983141983157 983152983154983145983149983141983145983154983151

983137983154983153983157983145983158983151 983120DF)

983140983151983139983137983140983140(9831522)

O construtor da classe Paragraph recebe o texto comoparacircmetro Depois basta chamar o meacutetodo

add() para adicionar o texto ao PDF

Alterando a fonte Nem sempre a fonte utilizada porpadr atildeo pelo iText eacute a fonte quevocecircdeseja nos seus documentos Logo eacute possiacutevel que vocecirc altere a fonte dos textos quevocecirc

adiciona ao PDF

A fonte eacute representada pela classe comitextpdf textFont Basta criar um objeto desta classe coma fonte desejada e associaacute-lo ao texto Observe o exemplo

F983151983150983156 983142 = 983150983141983159 F983151983150983156(F983151983150983156F983137983149983145983148983161C983119983125983122IE983122 20 F983151983150983156B983119983116D)

O coacutedigo acima cria uma fonte da famiacutelia Courier tamanho 20 itaacutelica O enum FontFamily e aclasse Font possuem tambeacutemoutras constantes para vocecirc explorar

A associaccedilatildeo entre a fonte e o texto eacute feita no construtor da classe Paragraph destaforma

983120983137983154983137983143983154983137983152983144 9831521 = 983150983141983159 983120983137983154983137983143983154983137983152983144(983117983141983157 983152983154983145983149983141983145983154983151 983137983154983153983157983145983158983151 983120DF 983142)

Pronto Vocecirc jaacutetem um tiacutetulo para o seuPDF Observecomo ficouo resultado

[httpwwwdicas-lcombrimagensitext_01jpg ]

Alinhamento Muitas vezes o alinhamento agrave esquerda natildeo eacute o suficiente O iText proporciona

outrasformas de alinhamento do texto Observe

9831521983155983141983156A983148983145983143983150983149983141983150983156(E983148983141983149983141983150983156A983116IG983118983135CE983118983124E983122)

Omeacutetodo setAlignment() permite especificar um alinhamentop ara o bloco Neste caso p1 seraacutealinhado no centroda linha Observe

[httpwwwdicas-lcombrimagensitext_02jpg ]

Espaccedilamento Caso vocecirc deseje ter um controle maior sobre o espaccedilamento utilizado antes edepois de um bloco de texto vocecirc pode utilizar os meacutetodos setSpacingBefore () e setSpacingAfter

() Observe

9831521983155983141983156983123983152983137983139983145983150983143A983142983156983141983154(20)

Neste exemplo apoacutes p 1 ser adicionado aodocument o seraacute deixado um espaccedilo em branco extrade 20 pontos Observe

[httpwwwdicas-lcombrimagensitext_03jpg ]

IMAGENS

8162019 [Dicas-L] Gerando PDF Utilizando Java

httpslidepdfcomreaderfulldicas-l-gerando-pdf-utilizando-java 46

Paacutegina 4cas-L] Gerando PDF utilizando Java

02042011 183447wwwdicas-lcombrarquivogerando_pdf_utilizando_javaphp

Damesma formaque textos imagens tambeacutempodem ser inseridasno documento PDF A maneira mais faacutecil de fazer isto eacute atraveacutes da classe comitextpdftextImage Ela eacute utilizada destaforma

I983149983137983143983141 983145983149983143 = I983149983137983143983141983143983141983156I983150983155983156983137983150983139983141(983155983151983142983156983138983148983157983141983146983152983143)

983145983149983143983155983141983156A983148983145983143983150983149983141983150983156(E983148983141983149983141983150983156A983116IG983118983135CE983118983124E983122)

983140983151983139983137983140983140(983145983149983143)

Bastachamar o meacutetodo getInstance() da classe passando o caminho da imagemque devesercarregada e depois adicionar a imagem ao documento atraveacutes do meacutetodo add() Os meacutetodos

setAlignment() setSpacingBefore() e setSpacingAfter() jaacute vistos anteriormente tambeacutem podem seraplicados agraves imagens Observe como fica o resultado

[http wwwsoftbluecombrpublicblog7itext_04jpg]

TABELAS

O iText possui tambeacutem suporte agrave criaccedilatildeo de tabelas Observe uma tabela simples abaixo queconteacutem algumas palavras reservadasd o Java

[http wwwsoftbluecombrpublicblog7itext_05jpg]

O coacutedigo que gera a tabela acima eacute o seguinte

983120983140983142983120983124983137983138983148983141 983156983137983138983148983141 = 983150983141983159 983120983140983142983120983124983137983138983148983141(3)

983120983140983142983120C983141983148983148 983144983141983137983140983141983154 = 983150983141983159 983120983140983142983120C983141983148983148(983150983141983159 983120983137983154983137983143983154983137983152983144(A983148983143983157983149983137983155 983120983137983148983137983158983137983154983137983155

983122983141983155983141983154983158983137983140983137983155 983140983151 J983137983158983137))

983144983141983137983140983141983154983155983141983156C983151983148983155983152983137983150(3)

983156983137983138983148983141983137983140983140C983141983148983148(983144983141983137983140983141983154)

983156983137983138983148983141983137983140983140C983141983148983148(983137983138983155983156983154983137983139983156)

983156983137983138983148983141983137983140983140C983141983148983148(983141983160983156983141983150983140983155)

983156983137983138983148983141983137983140983140C983141983148983148(983145983149983152983151983154983156)

983156983137983138983148983141983137983140983140C983141983148983148(983159983144983145983148983141)

983156983137983138983148983141983137983140983140C983141983148983148(983145983142)

983156983137983138983148983141983137983140983140C983141983148983148(983155983159983145983156983139983144) 983140983151983139983137983140983140(983156983137983138983148983141)

Vamos tentar entender o que significa este coacutedigo Ao trabalhar com tabelas no iText vocecirc basicamente vai usar duas classes PdfPTable e PdfPCell A primeira representa a tabelaenquanto a uacuteltima representauma ceacutelulada tabela

A chamada new PdfPTable(3) cria uma tabela com 3 colunas de forma quea largura das colunaseacute a mesma Veremos na sequecircncia como especificar largurasdiferentes para cada coluna

Depois criamos um objeto da classe PdfPCell que iraacute representar o cabeccedilalho da nossa tabelaNo construtor do PdfPCell vocecirc pode passar um objeto Paragraph contendo o texto que seraacutecolocado na ceacutelula Uma caracteriacutestica importante do cabeccedilalho eacute que eledeve ocupar as 3colunas da tabela Por este motivo noacutes usamos o meacutetodo setColspan(3)

Toda vez que desejamos adicionar uma ceacutelula agrave tabela chamamos o meacutetodo addCell() Nestemeacutetodo podemos passar tanto objetos PdfPCell como os textos de cada ceacuteluladiretamente (nestecaso o proacuteprio iText gera o objeto PdfPCell internamente) Perceba que em nenhum momentovocecirc diz em qual linha ou coluna da tabela a ceacutelula seraacute inserida O iText vai inserindo asceacutelulas de cima para baixoe da esquerdapara a direita O gerenciamento da criaccedilatildeo de novas

linhaseacute feito de forma automaacutetica

Depois de preparar a tabela bastaadicionaacute -la ao documento atraveacutes da chamadadocadd(table)

Definindo a Largura das Colunas Comovimos anteriormente ao construirmosumatabela informando apenas o nuacutemero de colunas o iText deixa todas as colunas com o mesmotamanho o que nem sempre eacute o ideal

A melhor forma de especificar a largura das colunas da tabela eacute usar a forma relativa Elafunciona assim vocecirc indica qual o tamanho da coluna com relaccedilatildeo agrave largura total da tabelaObserve

983120983140983142983120983124983137983138983148983141 983156983137983138983148983141 = 983150983141983159 983120983140983142983120983124983137983138983148983141(983150983141983159 983142983148983151983137983156983131983133 983163 02983142 02983142 06983142 983165)

Ao passar um array de nuacutemeros no construtor da PdfPTable vocecirc estaacute indicando um tamanhorelativo para cada coluna Como o array tem 3 elementos a tabela teraacute trecircs colunas Agora vocecircdeve pensar da seguinte forma todas as colunas da tabela juntas representam 100 E n estecaso a primeiracoluna rep resenta 20 a segunda 20 e a terceira 60 Perceba queas duasprimeiras colunas teratildeo o mesmo tamanho e a terceira coluna seraacute trecircs vezes maior quecada

coluna anterior O resultado final fica assim

[http wwwsoftbluecombrpublicblog7itext_06jpg]

Mudando o tamanho e alinhamento da tabela O iTextpermite tambeacutemque vocecircespecifique qual o tamanho e o alinhamentoda tabela com relaccedilatildeo do documento Isto eacute feitoatraveacutes dos meacutetodos setWidthPercentage() e setHorizontalAlignment() Observe

8162019 [Dicas-L] Gerando PDF Utilizando Java

httpslidepdfcomreaderfulldicas-l-gerando-pdf-utilizando-java 56

Paacutegina 5cas-L] Gerando PDF utilizando Java

02042011 183447wwwdicas-lcombrarquivogerando_pdf_utilizando_javaphp

983156983137983138983148983141983155983141983156983127983145983140983156983144983120983141983154983139983141983150983156983137983143983141(600983142)

983156983137983138983148983141983155983141983156H983151983154983145983162983151983150983156983137983148A983148983145983143983150983149983141983150983156(E983148983141983149983141983150983156A983116IG983118983135983122IGH983124)

No exemplo acima estamosdefinindo que a tabela deve ocupar apenas60 da largura dodocumento Tambeacutemestamos definindo que ela deve ser alinhada agrave direita Observeoresultado

[http wwwsoftbluecombrpublicblog7itext_07jpg]

Customizando as bordas e cores Eacute possiacutevel tambeacutem customizarmos as bordasd as ceacutelulase as cores das bordas e das ceacutelulas Observe o coacutedigo abaixo

983144983141983137983140983141983154983155983141983156B983137983139983147983143983154983151983157983150983140C983151983148983151983154(B983137983155983141C983151983148983151983154983129E983116983116983119983127)

983144983141983137983140983141983154983155983141983156B983151983154983140983141983154983127983145983140983156983144B983151983156983156983151983149(20983142)

983144983141983137983140983141983154983155983141983156B983151983154983140983141983154C983151983148983151983154B983151983156983156983151983149(B983137983155983141C983151983148983151983154B983116983125E)

983144983141983137983140983141983154983155983141983156B983151983154983140983141983154(983122983141983139983156983137983150983143983148983141B983119983124983124983119983117)

Ele gera como resultado

[http wwwsoftbluecombrpublicblog7itext_08jpg]

Omeacutetodo setBackgroundColor() define a cor de fundo da ceacutelula O meacutetodo setBorderWitdhBottom

() define a largura da linha da borda inferior O meacutetodo setBorderColorBottom() define a cor da borda inferior E o meacutetodo setBorder() define em que parte das ceacutelula a borda deve existirUsando RectangleBOTTOM estamos definindo que existe apenas uma borda inferior na ceacutelula

Eacute importante que vocecirc saiba queexistem variantes dos meacutetodos que definem a largura e cor dalinha da borda Utilizamos neste exemplo os meacutetodo setBorderWidthBottom() e

setBorderColorBottom() para a borda inferior mas eacute possiacutevel tambeacutem usar os meacutetodosequivalentes top left e right (para borda superior esquerda e direita respectivamente

CONCLUSAtildeO

Este artigo introduziu a API iText usada para gerar documentos PDF em Java O que estaacute

descrito aqui eacute apenas uma visatildeo inicial de algumas funcionalidades importantes do iText Masmuita coisaaleacutem do que estaacute descrito aqui pode ser feita Consulte a paacutegina oficial da API parater maiores informaccedilotildees

Carlos Tosin eacute instrutor oficial dos Cursos On-Line de Java (assista

uma viacutedeo-aula graacutetis) da Softblue formado em Ciecircncia da Computaccedilatildeo

pela PUC-PR poacutes-graduado em Desenvolvimento de Jogos para

Computador pela Universidade Positivo e Mestre em Informaacutetica na

aacuterea de Sistemas Distribuiacutedos tambeacutem pela PUC-PR Trabalha

profissionalmente com Java haacute 7 anos e possui 4 anos de experiecircncia

no desenvolvimento de sistemas para a IBM dos Estados Unidos

utilizados a niacutevel mundial Atua haacute mais de 2 anos com cursos e

treinamentos de profissionais em g randes empresas Possui as

certificaccedilotildees da Sun SCJP SCJD SCWCD SCBCD SCEA IBM SOA e

ITIL Foundation

Veja a relaccedilatildeo completa dos artigos de Carlos Tosin

StumbleUpon Digg Delicious Twitter Recomendar Contato PDF RSS Imprimir

REFEREcircNCIAS ADICIONAIS

Referecircncias adicionais sobre os assuntos abordados nestesite podem ser encontradas em nossaBibliografia

AVALIE ESTA DICA

Avaliaccedilatildeo 31 5 (267votos)

Tutorial Api Pdf

Descubra a Central de Agecircncias Oficial do Google AdWords Aqui

googlecombradwordswebexpert

OPINIAtildeO DOS LEITORES

8162019 [Dicas-L] Gerando PDF Utilizando Java

httpslidepdfcomreaderfulldicas-l-gerando-pdf-utilizando-java 66

Paacutegina 6cas-L] Gerando PDF utilizando Java

02042011 183447wwwdicas-lcombrarquivogerando_pdf_utilizando_javaphp

Privacy Policy

O material veiculado neste site poderaacute ser livremente distribuiacutedopara fins natildeo comerciais segundo os termos da licenccedila da

Creative Commons

Seja o primeiro a comentar este artigo

Nome

Email

Me notifique sobre novos comentaacuterios nessa paacutegina

Oculte meu email

Texto

Para publicar seu comentaacuterio digite o coacutedigo contido na imagem acima

Enviar

Powered by Scriptsmill Comments Script

Page 3: [Dicas-L] Gerando PDF Utilizando Java

8162019 [Dicas-L] Gerando PDF Utilizando Java

httpslidepdfcomreaderfulldicas-l-gerando-pdf-utilizando-java 36

Paacutegina 3cas-L] Gerando PDF utilizando Java

02042011 183447wwwdicas-lcombrarquivogerando_pdf_utilizando_javaphp

983145983142 (983151983155 = 983150983157983148983148) 983163

983142983141983139983144983137983149983141983150983156983151 983140983137 983155983156983154983141983137983149 983140983141 983155983137983277983140983137

983151983155983139983148983151983155983141()

983165

983165

983165

983165

Este eacute o esqueleto baacutesico de coacutedigo que vocecirc iraacute utilizar ao criar seus arquivos PDF mudandoapenaso conteuacutedo Na sequecircncia vocecirc veraacute mais detalhes sobrea classe Paragraph

TEXTOS

A forma mais faacutecil de adicionar textos ao PDF eacute utilizar a classe Paragraph Esta classe permite

que vocecirc adicione blocos de texto ao documento O texto eacute inserido na paacutegina como se vocecircestivesse utilizando um editor de textos O iText respeitaas margens que vocecirc especificou parao documento e tambeacutemgerencia automaticamente as quebras de linha Observe o coacutedigoabaixo que gera dois blocosde textocomo saiacuteda

983120983137983154983137983143983154983137983152983144 9831521 = 983150983141983159 983120983137983154983137983143983154983137983152983144(983117983141983157 983152983154983145983149983141983145983154983151 983137983154983153983157983145983158983151 983120DF)

983140983151983139983137983140983140(9831521)

983120983137983154983137983143983154983137983152983144 9831522 = 983150983141983159 983120983137983154983137983143983154983137983152983144(E983155983156983151983157 983157983156983145983148983145983162983137983150983140983151 983137 983139983148983137983155983155983141

983120983137983154983137983143983154983137983152983144 983152983137983154983137 983139983154983145983137983154 983157983149 983138983148983151983139983151 983140983141 983156983141983160983156983151 983150983137 983143983141983154983137983271983267983151 983140983151 983149983141983157 983152983154983145983149983141983145983154983151

983137983154983153983157983145983158983151 983120DF)

983140983151983139983137983140983140(9831522)

O construtor da classe Paragraph recebe o texto comoparacircmetro Depois basta chamar o meacutetodo

add() para adicionar o texto ao PDF

Alterando a fonte Nem sempre a fonte utilizada porpadr atildeo pelo iText eacute a fonte quevocecircdeseja nos seus documentos Logo eacute possiacutevel que vocecirc altere a fonte dos textos quevocecirc

adiciona ao PDF

A fonte eacute representada pela classe comitextpdf textFont Basta criar um objeto desta classe coma fonte desejada e associaacute-lo ao texto Observe o exemplo

F983151983150983156 983142 = 983150983141983159 F983151983150983156(F983151983150983156F983137983149983145983148983161C983119983125983122IE983122 20 F983151983150983156B983119983116D)

O coacutedigo acima cria uma fonte da famiacutelia Courier tamanho 20 itaacutelica O enum FontFamily e aclasse Font possuem tambeacutemoutras constantes para vocecirc explorar

A associaccedilatildeo entre a fonte e o texto eacute feita no construtor da classe Paragraph destaforma

983120983137983154983137983143983154983137983152983144 9831521 = 983150983141983159 983120983137983154983137983143983154983137983152983144(983117983141983157 983152983154983145983149983141983145983154983151 983137983154983153983157983145983158983151 983120DF 983142)

Pronto Vocecirc jaacutetem um tiacutetulo para o seuPDF Observecomo ficouo resultado

[httpwwwdicas-lcombrimagensitext_01jpg ]

Alinhamento Muitas vezes o alinhamento agrave esquerda natildeo eacute o suficiente O iText proporciona

outrasformas de alinhamento do texto Observe

9831521983155983141983156A983148983145983143983150983149983141983150983156(E983148983141983149983141983150983156A983116IG983118983135CE983118983124E983122)

Omeacutetodo setAlignment() permite especificar um alinhamentop ara o bloco Neste caso p1 seraacutealinhado no centroda linha Observe

[httpwwwdicas-lcombrimagensitext_02jpg ]

Espaccedilamento Caso vocecirc deseje ter um controle maior sobre o espaccedilamento utilizado antes edepois de um bloco de texto vocecirc pode utilizar os meacutetodos setSpacingBefore () e setSpacingAfter

() Observe

9831521983155983141983156983123983152983137983139983145983150983143A983142983156983141983154(20)

Neste exemplo apoacutes p 1 ser adicionado aodocument o seraacute deixado um espaccedilo em branco extrade 20 pontos Observe

[httpwwwdicas-lcombrimagensitext_03jpg ]

IMAGENS

8162019 [Dicas-L] Gerando PDF Utilizando Java

httpslidepdfcomreaderfulldicas-l-gerando-pdf-utilizando-java 46

Paacutegina 4cas-L] Gerando PDF utilizando Java

02042011 183447wwwdicas-lcombrarquivogerando_pdf_utilizando_javaphp

Damesma formaque textos imagens tambeacutempodem ser inseridasno documento PDF A maneira mais faacutecil de fazer isto eacute atraveacutes da classe comitextpdftextImage Ela eacute utilizada destaforma

I983149983137983143983141 983145983149983143 = I983149983137983143983141983143983141983156I983150983155983156983137983150983139983141(983155983151983142983156983138983148983157983141983146983152983143)

983145983149983143983155983141983156A983148983145983143983150983149983141983150983156(E983148983141983149983141983150983156A983116IG983118983135CE983118983124E983122)

983140983151983139983137983140983140(983145983149983143)

Bastachamar o meacutetodo getInstance() da classe passando o caminho da imagemque devesercarregada e depois adicionar a imagem ao documento atraveacutes do meacutetodo add() Os meacutetodos

setAlignment() setSpacingBefore() e setSpacingAfter() jaacute vistos anteriormente tambeacutem podem seraplicados agraves imagens Observe como fica o resultado

[http wwwsoftbluecombrpublicblog7itext_04jpg]

TABELAS

O iText possui tambeacutem suporte agrave criaccedilatildeo de tabelas Observe uma tabela simples abaixo queconteacutem algumas palavras reservadasd o Java

[http wwwsoftbluecombrpublicblog7itext_05jpg]

O coacutedigo que gera a tabela acima eacute o seguinte

983120983140983142983120983124983137983138983148983141 983156983137983138983148983141 = 983150983141983159 983120983140983142983120983124983137983138983148983141(3)

983120983140983142983120C983141983148983148 983144983141983137983140983141983154 = 983150983141983159 983120983140983142983120C983141983148983148(983150983141983159 983120983137983154983137983143983154983137983152983144(A983148983143983157983149983137983155 983120983137983148983137983158983137983154983137983155

983122983141983155983141983154983158983137983140983137983155 983140983151 J983137983158983137))

983144983141983137983140983141983154983155983141983156C983151983148983155983152983137983150(3)

983156983137983138983148983141983137983140983140C983141983148983148(983144983141983137983140983141983154)

983156983137983138983148983141983137983140983140C983141983148983148(983137983138983155983156983154983137983139983156)

983156983137983138983148983141983137983140983140C983141983148983148(983141983160983156983141983150983140983155)

983156983137983138983148983141983137983140983140C983141983148983148(983145983149983152983151983154983156)

983156983137983138983148983141983137983140983140C983141983148983148(983159983144983145983148983141)

983156983137983138983148983141983137983140983140C983141983148983148(983145983142)

983156983137983138983148983141983137983140983140C983141983148983148(983155983159983145983156983139983144) 983140983151983139983137983140983140(983156983137983138983148983141)

Vamos tentar entender o que significa este coacutedigo Ao trabalhar com tabelas no iText vocecirc basicamente vai usar duas classes PdfPTable e PdfPCell A primeira representa a tabelaenquanto a uacuteltima representauma ceacutelulada tabela

A chamada new PdfPTable(3) cria uma tabela com 3 colunas de forma quea largura das colunaseacute a mesma Veremos na sequecircncia como especificar largurasdiferentes para cada coluna

Depois criamos um objeto da classe PdfPCell que iraacute representar o cabeccedilalho da nossa tabelaNo construtor do PdfPCell vocecirc pode passar um objeto Paragraph contendo o texto que seraacutecolocado na ceacutelula Uma caracteriacutestica importante do cabeccedilalho eacute que eledeve ocupar as 3colunas da tabela Por este motivo noacutes usamos o meacutetodo setColspan(3)

Toda vez que desejamos adicionar uma ceacutelula agrave tabela chamamos o meacutetodo addCell() Nestemeacutetodo podemos passar tanto objetos PdfPCell como os textos de cada ceacuteluladiretamente (nestecaso o proacuteprio iText gera o objeto PdfPCell internamente) Perceba que em nenhum momentovocecirc diz em qual linha ou coluna da tabela a ceacutelula seraacute inserida O iText vai inserindo asceacutelulas de cima para baixoe da esquerdapara a direita O gerenciamento da criaccedilatildeo de novas

linhaseacute feito de forma automaacutetica

Depois de preparar a tabela bastaadicionaacute -la ao documento atraveacutes da chamadadocadd(table)

Definindo a Largura das Colunas Comovimos anteriormente ao construirmosumatabela informando apenas o nuacutemero de colunas o iText deixa todas as colunas com o mesmotamanho o que nem sempre eacute o ideal

A melhor forma de especificar a largura das colunas da tabela eacute usar a forma relativa Elafunciona assim vocecirc indica qual o tamanho da coluna com relaccedilatildeo agrave largura total da tabelaObserve

983120983140983142983120983124983137983138983148983141 983156983137983138983148983141 = 983150983141983159 983120983140983142983120983124983137983138983148983141(983150983141983159 983142983148983151983137983156983131983133 983163 02983142 02983142 06983142 983165)

Ao passar um array de nuacutemeros no construtor da PdfPTable vocecirc estaacute indicando um tamanhorelativo para cada coluna Como o array tem 3 elementos a tabela teraacute trecircs colunas Agora vocecircdeve pensar da seguinte forma todas as colunas da tabela juntas representam 100 E n estecaso a primeiracoluna rep resenta 20 a segunda 20 e a terceira 60 Perceba queas duasprimeiras colunas teratildeo o mesmo tamanho e a terceira coluna seraacute trecircs vezes maior quecada

coluna anterior O resultado final fica assim

[http wwwsoftbluecombrpublicblog7itext_06jpg]

Mudando o tamanho e alinhamento da tabela O iTextpermite tambeacutemque vocecircespecifique qual o tamanho e o alinhamentoda tabela com relaccedilatildeo do documento Isto eacute feitoatraveacutes dos meacutetodos setWidthPercentage() e setHorizontalAlignment() Observe

8162019 [Dicas-L] Gerando PDF Utilizando Java

httpslidepdfcomreaderfulldicas-l-gerando-pdf-utilizando-java 56

Paacutegina 5cas-L] Gerando PDF utilizando Java

02042011 183447wwwdicas-lcombrarquivogerando_pdf_utilizando_javaphp

983156983137983138983148983141983155983141983156983127983145983140983156983144983120983141983154983139983141983150983156983137983143983141(600983142)

983156983137983138983148983141983155983141983156H983151983154983145983162983151983150983156983137983148A983148983145983143983150983149983141983150983156(E983148983141983149983141983150983156A983116IG983118983135983122IGH983124)

No exemplo acima estamosdefinindo que a tabela deve ocupar apenas60 da largura dodocumento Tambeacutemestamos definindo que ela deve ser alinhada agrave direita Observeoresultado

[http wwwsoftbluecombrpublicblog7itext_07jpg]

Customizando as bordas e cores Eacute possiacutevel tambeacutem customizarmos as bordasd as ceacutelulase as cores das bordas e das ceacutelulas Observe o coacutedigo abaixo

983144983141983137983140983141983154983155983141983156B983137983139983147983143983154983151983157983150983140C983151983148983151983154(B983137983155983141C983151983148983151983154983129E983116983116983119983127)

983144983141983137983140983141983154983155983141983156B983151983154983140983141983154983127983145983140983156983144B983151983156983156983151983149(20983142)

983144983141983137983140983141983154983155983141983156B983151983154983140983141983154C983151983148983151983154B983151983156983156983151983149(B983137983155983141C983151983148983151983154B983116983125E)

983144983141983137983140983141983154983155983141983156B983151983154983140983141983154(983122983141983139983156983137983150983143983148983141B983119983124983124983119983117)

Ele gera como resultado

[http wwwsoftbluecombrpublicblog7itext_08jpg]

Omeacutetodo setBackgroundColor() define a cor de fundo da ceacutelula O meacutetodo setBorderWitdhBottom

() define a largura da linha da borda inferior O meacutetodo setBorderColorBottom() define a cor da borda inferior E o meacutetodo setBorder() define em que parte das ceacutelula a borda deve existirUsando RectangleBOTTOM estamos definindo que existe apenas uma borda inferior na ceacutelula

Eacute importante que vocecirc saiba queexistem variantes dos meacutetodos que definem a largura e cor dalinha da borda Utilizamos neste exemplo os meacutetodo setBorderWidthBottom() e

setBorderColorBottom() para a borda inferior mas eacute possiacutevel tambeacutem usar os meacutetodosequivalentes top left e right (para borda superior esquerda e direita respectivamente

CONCLUSAtildeO

Este artigo introduziu a API iText usada para gerar documentos PDF em Java O que estaacute

descrito aqui eacute apenas uma visatildeo inicial de algumas funcionalidades importantes do iText Masmuita coisaaleacutem do que estaacute descrito aqui pode ser feita Consulte a paacutegina oficial da API parater maiores informaccedilotildees

Carlos Tosin eacute instrutor oficial dos Cursos On-Line de Java (assista

uma viacutedeo-aula graacutetis) da Softblue formado em Ciecircncia da Computaccedilatildeo

pela PUC-PR poacutes-graduado em Desenvolvimento de Jogos para

Computador pela Universidade Positivo e Mestre em Informaacutetica na

aacuterea de Sistemas Distribuiacutedos tambeacutem pela PUC-PR Trabalha

profissionalmente com Java haacute 7 anos e possui 4 anos de experiecircncia

no desenvolvimento de sistemas para a IBM dos Estados Unidos

utilizados a niacutevel mundial Atua haacute mais de 2 anos com cursos e

treinamentos de profissionais em g randes empresas Possui as

certificaccedilotildees da Sun SCJP SCJD SCWCD SCBCD SCEA IBM SOA e

ITIL Foundation

Veja a relaccedilatildeo completa dos artigos de Carlos Tosin

StumbleUpon Digg Delicious Twitter Recomendar Contato PDF RSS Imprimir

REFEREcircNCIAS ADICIONAIS

Referecircncias adicionais sobre os assuntos abordados nestesite podem ser encontradas em nossaBibliografia

AVALIE ESTA DICA

Avaliaccedilatildeo 31 5 (267votos)

Tutorial Api Pdf

Descubra a Central de Agecircncias Oficial do Google AdWords Aqui

googlecombradwordswebexpert

OPINIAtildeO DOS LEITORES

8162019 [Dicas-L] Gerando PDF Utilizando Java

httpslidepdfcomreaderfulldicas-l-gerando-pdf-utilizando-java 66

Paacutegina 6cas-L] Gerando PDF utilizando Java

02042011 183447wwwdicas-lcombrarquivogerando_pdf_utilizando_javaphp

Privacy Policy

O material veiculado neste site poderaacute ser livremente distribuiacutedopara fins natildeo comerciais segundo os termos da licenccedila da

Creative Commons

Seja o primeiro a comentar este artigo

Nome

Email

Me notifique sobre novos comentaacuterios nessa paacutegina

Oculte meu email

Texto

Para publicar seu comentaacuterio digite o coacutedigo contido na imagem acima

Enviar

Powered by Scriptsmill Comments Script

Page 4: [Dicas-L] Gerando PDF Utilizando Java

8162019 [Dicas-L] Gerando PDF Utilizando Java

httpslidepdfcomreaderfulldicas-l-gerando-pdf-utilizando-java 46

Paacutegina 4cas-L] Gerando PDF utilizando Java

02042011 183447wwwdicas-lcombrarquivogerando_pdf_utilizando_javaphp

Damesma formaque textos imagens tambeacutempodem ser inseridasno documento PDF A maneira mais faacutecil de fazer isto eacute atraveacutes da classe comitextpdftextImage Ela eacute utilizada destaforma

I983149983137983143983141 983145983149983143 = I983149983137983143983141983143983141983156I983150983155983156983137983150983139983141(983155983151983142983156983138983148983157983141983146983152983143)

983145983149983143983155983141983156A983148983145983143983150983149983141983150983156(E983148983141983149983141983150983156A983116IG983118983135CE983118983124E983122)

983140983151983139983137983140983140(983145983149983143)

Bastachamar o meacutetodo getInstance() da classe passando o caminho da imagemque devesercarregada e depois adicionar a imagem ao documento atraveacutes do meacutetodo add() Os meacutetodos

setAlignment() setSpacingBefore() e setSpacingAfter() jaacute vistos anteriormente tambeacutem podem seraplicados agraves imagens Observe como fica o resultado

[http wwwsoftbluecombrpublicblog7itext_04jpg]

TABELAS

O iText possui tambeacutem suporte agrave criaccedilatildeo de tabelas Observe uma tabela simples abaixo queconteacutem algumas palavras reservadasd o Java

[http wwwsoftbluecombrpublicblog7itext_05jpg]

O coacutedigo que gera a tabela acima eacute o seguinte

983120983140983142983120983124983137983138983148983141 983156983137983138983148983141 = 983150983141983159 983120983140983142983120983124983137983138983148983141(3)

983120983140983142983120C983141983148983148 983144983141983137983140983141983154 = 983150983141983159 983120983140983142983120C983141983148983148(983150983141983159 983120983137983154983137983143983154983137983152983144(A983148983143983157983149983137983155 983120983137983148983137983158983137983154983137983155

983122983141983155983141983154983158983137983140983137983155 983140983151 J983137983158983137))

983144983141983137983140983141983154983155983141983156C983151983148983155983152983137983150(3)

983156983137983138983148983141983137983140983140C983141983148983148(983144983141983137983140983141983154)

983156983137983138983148983141983137983140983140C983141983148983148(983137983138983155983156983154983137983139983156)

983156983137983138983148983141983137983140983140C983141983148983148(983141983160983156983141983150983140983155)

983156983137983138983148983141983137983140983140C983141983148983148(983145983149983152983151983154983156)

983156983137983138983148983141983137983140983140C983141983148983148(983159983144983145983148983141)

983156983137983138983148983141983137983140983140C983141983148983148(983145983142)

983156983137983138983148983141983137983140983140C983141983148983148(983155983159983145983156983139983144) 983140983151983139983137983140983140(983156983137983138983148983141)

Vamos tentar entender o que significa este coacutedigo Ao trabalhar com tabelas no iText vocecirc basicamente vai usar duas classes PdfPTable e PdfPCell A primeira representa a tabelaenquanto a uacuteltima representauma ceacutelulada tabela

A chamada new PdfPTable(3) cria uma tabela com 3 colunas de forma quea largura das colunaseacute a mesma Veremos na sequecircncia como especificar largurasdiferentes para cada coluna

Depois criamos um objeto da classe PdfPCell que iraacute representar o cabeccedilalho da nossa tabelaNo construtor do PdfPCell vocecirc pode passar um objeto Paragraph contendo o texto que seraacutecolocado na ceacutelula Uma caracteriacutestica importante do cabeccedilalho eacute que eledeve ocupar as 3colunas da tabela Por este motivo noacutes usamos o meacutetodo setColspan(3)

Toda vez que desejamos adicionar uma ceacutelula agrave tabela chamamos o meacutetodo addCell() Nestemeacutetodo podemos passar tanto objetos PdfPCell como os textos de cada ceacuteluladiretamente (nestecaso o proacuteprio iText gera o objeto PdfPCell internamente) Perceba que em nenhum momentovocecirc diz em qual linha ou coluna da tabela a ceacutelula seraacute inserida O iText vai inserindo asceacutelulas de cima para baixoe da esquerdapara a direita O gerenciamento da criaccedilatildeo de novas

linhaseacute feito de forma automaacutetica

Depois de preparar a tabela bastaadicionaacute -la ao documento atraveacutes da chamadadocadd(table)

Definindo a Largura das Colunas Comovimos anteriormente ao construirmosumatabela informando apenas o nuacutemero de colunas o iText deixa todas as colunas com o mesmotamanho o que nem sempre eacute o ideal

A melhor forma de especificar a largura das colunas da tabela eacute usar a forma relativa Elafunciona assim vocecirc indica qual o tamanho da coluna com relaccedilatildeo agrave largura total da tabelaObserve

983120983140983142983120983124983137983138983148983141 983156983137983138983148983141 = 983150983141983159 983120983140983142983120983124983137983138983148983141(983150983141983159 983142983148983151983137983156983131983133 983163 02983142 02983142 06983142 983165)

Ao passar um array de nuacutemeros no construtor da PdfPTable vocecirc estaacute indicando um tamanhorelativo para cada coluna Como o array tem 3 elementos a tabela teraacute trecircs colunas Agora vocecircdeve pensar da seguinte forma todas as colunas da tabela juntas representam 100 E n estecaso a primeiracoluna rep resenta 20 a segunda 20 e a terceira 60 Perceba queas duasprimeiras colunas teratildeo o mesmo tamanho e a terceira coluna seraacute trecircs vezes maior quecada

coluna anterior O resultado final fica assim

[http wwwsoftbluecombrpublicblog7itext_06jpg]

Mudando o tamanho e alinhamento da tabela O iTextpermite tambeacutemque vocecircespecifique qual o tamanho e o alinhamentoda tabela com relaccedilatildeo do documento Isto eacute feitoatraveacutes dos meacutetodos setWidthPercentage() e setHorizontalAlignment() Observe

8162019 [Dicas-L] Gerando PDF Utilizando Java

httpslidepdfcomreaderfulldicas-l-gerando-pdf-utilizando-java 56

Paacutegina 5cas-L] Gerando PDF utilizando Java

02042011 183447wwwdicas-lcombrarquivogerando_pdf_utilizando_javaphp

983156983137983138983148983141983155983141983156983127983145983140983156983144983120983141983154983139983141983150983156983137983143983141(600983142)

983156983137983138983148983141983155983141983156H983151983154983145983162983151983150983156983137983148A983148983145983143983150983149983141983150983156(E983148983141983149983141983150983156A983116IG983118983135983122IGH983124)

No exemplo acima estamosdefinindo que a tabela deve ocupar apenas60 da largura dodocumento Tambeacutemestamos definindo que ela deve ser alinhada agrave direita Observeoresultado

[http wwwsoftbluecombrpublicblog7itext_07jpg]

Customizando as bordas e cores Eacute possiacutevel tambeacutem customizarmos as bordasd as ceacutelulase as cores das bordas e das ceacutelulas Observe o coacutedigo abaixo

983144983141983137983140983141983154983155983141983156B983137983139983147983143983154983151983157983150983140C983151983148983151983154(B983137983155983141C983151983148983151983154983129E983116983116983119983127)

983144983141983137983140983141983154983155983141983156B983151983154983140983141983154983127983145983140983156983144B983151983156983156983151983149(20983142)

983144983141983137983140983141983154983155983141983156B983151983154983140983141983154C983151983148983151983154B983151983156983156983151983149(B983137983155983141C983151983148983151983154B983116983125E)

983144983141983137983140983141983154983155983141983156B983151983154983140983141983154(983122983141983139983156983137983150983143983148983141B983119983124983124983119983117)

Ele gera como resultado

[http wwwsoftbluecombrpublicblog7itext_08jpg]

Omeacutetodo setBackgroundColor() define a cor de fundo da ceacutelula O meacutetodo setBorderWitdhBottom

() define a largura da linha da borda inferior O meacutetodo setBorderColorBottom() define a cor da borda inferior E o meacutetodo setBorder() define em que parte das ceacutelula a borda deve existirUsando RectangleBOTTOM estamos definindo que existe apenas uma borda inferior na ceacutelula

Eacute importante que vocecirc saiba queexistem variantes dos meacutetodos que definem a largura e cor dalinha da borda Utilizamos neste exemplo os meacutetodo setBorderWidthBottom() e

setBorderColorBottom() para a borda inferior mas eacute possiacutevel tambeacutem usar os meacutetodosequivalentes top left e right (para borda superior esquerda e direita respectivamente

CONCLUSAtildeO

Este artigo introduziu a API iText usada para gerar documentos PDF em Java O que estaacute

descrito aqui eacute apenas uma visatildeo inicial de algumas funcionalidades importantes do iText Masmuita coisaaleacutem do que estaacute descrito aqui pode ser feita Consulte a paacutegina oficial da API parater maiores informaccedilotildees

Carlos Tosin eacute instrutor oficial dos Cursos On-Line de Java (assista

uma viacutedeo-aula graacutetis) da Softblue formado em Ciecircncia da Computaccedilatildeo

pela PUC-PR poacutes-graduado em Desenvolvimento de Jogos para

Computador pela Universidade Positivo e Mestre em Informaacutetica na

aacuterea de Sistemas Distribuiacutedos tambeacutem pela PUC-PR Trabalha

profissionalmente com Java haacute 7 anos e possui 4 anos de experiecircncia

no desenvolvimento de sistemas para a IBM dos Estados Unidos

utilizados a niacutevel mundial Atua haacute mais de 2 anos com cursos e

treinamentos de profissionais em g randes empresas Possui as

certificaccedilotildees da Sun SCJP SCJD SCWCD SCBCD SCEA IBM SOA e

ITIL Foundation

Veja a relaccedilatildeo completa dos artigos de Carlos Tosin

StumbleUpon Digg Delicious Twitter Recomendar Contato PDF RSS Imprimir

REFEREcircNCIAS ADICIONAIS

Referecircncias adicionais sobre os assuntos abordados nestesite podem ser encontradas em nossaBibliografia

AVALIE ESTA DICA

Avaliaccedilatildeo 31 5 (267votos)

Tutorial Api Pdf

Descubra a Central de Agecircncias Oficial do Google AdWords Aqui

googlecombradwordswebexpert

OPINIAtildeO DOS LEITORES

8162019 [Dicas-L] Gerando PDF Utilizando Java

httpslidepdfcomreaderfulldicas-l-gerando-pdf-utilizando-java 66

Paacutegina 6cas-L] Gerando PDF utilizando Java

02042011 183447wwwdicas-lcombrarquivogerando_pdf_utilizando_javaphp

Privacy Policy

O material veiculado neste site poderaacute ser livremente distribuiacutedopara fins natildeo comerciais segundo os termos da licenccedila da

Creative Commons

Seja o primeiro a comentar este artigo

Nome

Email

Me notifique sobre novos comentaacuterios nessa paacutegina

Oculte meu email

Texto

Para publicar seu comentaacuterio digite o coacutedigo contido na imagem acima

Enviar

Powered by Scriptsmill Comments Script

Page 5: [Dicas-L] Gerando PDF Utilizando Java

8162019 [Dicas-L] Gerando PDF Utilizando Java

httpslidepdfcomreaderfulldicas-l-gerando-pdf-utilizando-java 56

Paacutegina 5cas-L] Gerando PDF utilizando Java

02042011 183447wwwdicas-lcombrarquivogerando_pdf_utilizando_javaphp

983156983137983138983148983141983155983141983156983127983145983140983156983144983120983141983154983139983141983150983156983137983143983141(600983142)

983156983137983138983148983141983155983141983156H983151983154983145983162983151983150983156983137983148A983148983145983143983150983149983141983150983156(E983148983141983149983141983150983156A983116IG983118983135983122IGH983124)

No exemplo acima estamosdefinindo que a tabela deve ocupar apenas60 da largura dodocumento Tambeacutemestamos definindo que ela deve ser alinhada agrave direita Observeoresultado

[http wwwsoftbluecombrpublicblog7itext_07jpg]

Customizando as bordas e cores Eacute possiacutevel tambeacutem customizarmos as bordasd as ceacutelulase as cores das bordas e das ceacutelulas Observe o coacutedigo abaixo

983144983141983137983140983141983154983155983141983156B983137983139983147983143983154983151983157983150983140C983151983148983151983154(B983137983155983141C983151983148983151983154983129E983116983116983119983127)

983144983141983137983140983141983154983155983141983156B983151983154983140983141983154983127983145983140983156983144B983151983156983156983151983149(20983142)

983144983141983137983140983141983154983155983141983156B983151983154983140983141983154C983151983148983151983154B983151983156983156983151983149(B983137983155983141C983151983148983151983154B983116983125E)

983144983141983137983140983141983154983155983141983156B983151983154983140983141983154(983122983141983139983156983137983150983143983148983141B983119983124983124983119983117)

Ele gera como resultado

[http wwwsoftbluecombrpublicblog7itext_08jpg]

Omeacutetodo setBackgroundColor() define a cor de fundo da ceacutelula O meacutetodo setBorderWitdhBottom

() define a largura da linha da borda inferior O meacutetodo setBorderColorBottom() define a cor da borda inferior E o meacutetodo setBorder() define em que parte das ceacutelula a borda deve existirUsando RectangleBOTTOM estamos definindo que existe apenas uma borda inferior na ceacutelula

Eacute importante que vocecirc saiba queexistem variantes dos meacutetodos que definem a largura e cor dalinha da borda Utilizamos neste exemplo os meacutetodo setBorderWidthBottom() e

setBorderColorBottom() para a borda inferior mas eacute possiacutevel tambeacutem usar os meacutetodosequivalentes top left e right (para borda superior esquerda e direita respectivamente

CONCLUSAtildeO

Este artigo introduziu a API iText usada para gerar documentos PDF em Java O que estaacute

descrito aqui eacute apenas uma visatildeo inicial de algumas funcionalidades importantes do iText Masmuita coisaaleacutem do que estaacute descrito aqui pode ser feita Consulte a paacutegina oficial da API parater maiores informaccedilotildees

Carlos Tosin eacute instrutor oficial dos Cursos On-Line de Java (assista

uma viacutedeo-aula graacutetis) da Softblue formado em Ciecircncia da Computaccedilatildeo

pela PUC-PR poacutes-graduado em Desenvolvimento de Jogos para

Computador pela Universidade Positivo e Mestre em Informaacutetica na

aacuterea de Sistemas Distribuiacutedos tambeacutem pela PUC-PR Trabalha

profissionalmente com Java haacute 7 anos e possui 4 anos de experiecircncia

no desenvolvimento de sistemas para a IBM dos Estados Unidos

utilizados a niacutevel mundial Atua haacute mais de 2 anos com cursos e

treinamentos de profissionais em g randes empresas Possui as

certificaccedilotildees da Sun SCJP SCJD SCWCD SCBCD SCEA IBM SOA e

ITIL Foundation

Veja a relaccedilatildeo completa dos artigos de Carlos Tosin

StumbleUpon Digg Delicious Twitter Recomendar Contato PDF RSS Imprimir

REFEREcircNCIAS ADICIONAIS

Referecircncias adicionais sobre os assuntos abordados nestesite podem ser encontradas em nossaBibliografia

AVALIE ESTA DICA

Avaliaccedilatildeo 31 5 (267votos)

Tutorial Api Pdf

Descubra a Central de Agecircncias Oficial do Google AdWords Aqui

googlecombradwordswebexpert

OPINIAtildeO DOS LEITORES

8162019 [Dicas-L] Gerando PDF Utilizando Java

httpslidepdfcomreaderfulldicas-l-gerando-pdf-utilizando-java 66

Paacutegina 6cas-L] Gerando PDF utilizando Java

02042011 183447wwwdicas-lcombrarquivogerando_pdf_utilizando_javaphp

Privacy Policy

O material veiculado neste site poderaacute ser livremente distribuiacutedopara fins natildeo comerciais segundo os termos da licenccedila da

Creative Commons

Seja o primeiro a comentar este artigo

Nome

Email

Me notifique sobre novos comentaacuterios nessa paacutegina

Oculte meu email

Texto

Para publicar seu comentaacuterio digite o coacutedigo contido na imagem acima

Enviar

Powered by Scriptsmill Comments Script

Page 6: [Dicas-L] Gerando PDF Utilizando Java

8162019 [Dicas-L] Gerando PDF Utilizando Java

httpslidepdfcomreaderfulldicas-l-gerando-pdf-utilizando-java 66

Paacutegina 6cas-L] Gerando PDF utilizando Java

02042011 183447wwwdicas-lcombrarquivogerando_pdf_utilizando_javaphp

Privacy Policy

O material veiculado neste site poderaacute ser livremente distribuiacutedopara fins natildeo comerciais segundo os termos da licenccedila da

Creative Commons

Seja o primeiro a comentar este artigo

Nome

Email

Me notifique sobre novos comentaacuterios nessa paacutegina

Oculte meu email

Texto

Para publicar seu comentaacuterio digite o coacutedigo contido na imagem acima

Enviar

Powered by Scriptsmill Comments Script