Olá galera, gostaria de uma grande ajuda de vocês. Estou desenvolvendo um relatório com o itext e tenho algumas dúvidas e gostaria de me comunicar com pessoas que trabalham ou já trabalaharam com o iText para que caso surgem outras dúvidas eu possa me comunicar.
O código está ai abaixo, por enquando não tem dados para ser exibidos, somente estou montando o layout.
package br.com.ctis.examples.itext;
import java.awt.Color;
import java.io.*;
import com.lowagie.text.pdf.PdfPTable;
import com.lowagie.text.pdf.PdfTable;
import com.lowagie.text.pdf.PdfPCell;
import com.lowagie.text.*;
import com.lowagie.text.pdf.PdfWriter;
import java.util.Date;
import java.text.SimpleDateFormat;
import javax.swing.plaf.TabbedPaneUI;
public class DemonstrativoPagamentos {
private static Document document;
private static StringBuffer texto;
private static Paragraph paragrafo;
private static Chunk linhaTexto;
public static void main(String args[]){
document = new Document(PageSize.A4.rotate());
try {
PdfWriter.getInstance(document, new FileOutputStream("C:\\DemonstrativoPagamento.pdf"));
document.open();
// tabela de Imagens
float[] widthImagens = {0.30f, 0.30f};
PdfPTable tableImages = new PdfPTable(widthImagens);
Image imagemLogo = Image.getInstance("C://ImagesPDF//banco_real.gif") ;
// imagemLogo.setAbsolutePosition(,760);
imagemLogo.setAlignment(Element.ALIGN_LEFT);
document.add(imagemLogo);
Image imagemLogo2 = Image.getInstance("C://ImagesPDF//logo_banco_bgtop.gif") ;
imagemLogo2.setAbsolutePosition(150,530);
document.add(imagemLogo2);
texto = new StringBuffer();
// Título do PDF
texto.append("\nDEMONSTRATIVO DE PAGAMENTOS\n\n");
linhaTexto = new Chunk(texto.toString(),FontFactory.getFont(FontFactory.HELVETICA_BOLD,14));
paragrafo = new Paragraph(linhaTexto);
paragrafo.setAlignment(Element.ALIGN_CENTER);
document.add(paragrafo);
float[] widthsInfo ={0.10f,0.10f};
PdfPTable tableInfo = new PdfPTable(widthsInfo);
tableInfo.setSpacingAfter(15f);
texto = new StringBuffer();
texto.append("Ordem de Apresentação :");
linhaTexto = new Chunk(texto.toString(),FontFactory.getFont(FontFactory.TIMES_BOLD,12));
paragrafo = new Paragraph(linhaTexto);
paragrafo.setAlignment(Element.ALIGN_LEFT);
tableInfo.addCell(paragrafo);
texto = new StringBuffer();
texto.append("Forma de Pagamento");
linhaTexto = new Chunk(texto.toString(),FontFactory.getFont(FontFactory.TIMES,12));
paragrafo = new Paragraph(linhaTexto);
paragrafo.setAlignment(Element.ALIGN_LEFT);
tableInfo.addCell(paragrafo);
texto = new StringBuffer();
texto.append("Gerado em :");
linhaTexto = new Chunk(texto.toString(),FontFactory.getFont(FontFactory.TIMES_BOLD,12));
paragrafo = new Paragraph(linhaTexto);
paragrafo.setAlignment(Element.ALIGN_CENTER);
tableInfo.addCell(paragrafo);
Date dataAtual = new Date();
SimpleDateFormat sdf= new SimpleDateFormat("dd/MM/yyyy");
texto = new StringBuffer();
texto.append(sdf.format(dataAtual));
linhaTexto = new Chunk(texto.toString(),FontFactory.getFont(FontFactory.TIMES,12));
paragrafo = new Paragraph(linhaTexto);
paragrafo.setAlignment(Element.ALIGN_CENTER);
tableInfo.addCell(paragrafo);
document.add(tableInfo);
//float[] widths = {0.75f, 0.75f, 0.75f, 0.75f,0.75f,0.75f,0.55f,0.65f,0.65f};
PdfPTable table1 = new PdfPTable(1);
PdfPCell colunas1 = null;
linhaTexto = new Chunk("Doc",FontFactory.getFont(FontFactory.TIMES,10));
colunas1 = new PdfPCell(new Paragraph(linhaTexto));
colunas1.setBorder(Rectangle.NO_BORDER);
colunas1.setColspan(9);
colunas1.setBackgroundColor(Color.GRAY);
table1.addCell(colunas1);
table1.setWidthPercentage(100);
document.add(table1);
PdfPTable table = new PdfPTable(9);
PdfPCell colunas = null;
linhaTexto = new Chunk("Favorecido".toString(),FontFactory.getFont(FontFactory.TIMES_BOLD,9));
colunas = new PdfPCell(new Paragraph(linhaTexto));
colunas.getBorderWidthBottom();
colunas.setBorder(Rectangle.NO_BORDER);
colunas.setBorderColorTop(Color.BLACK);
colunas.setBorderColorBottom(Color.BLACK);
table.addCell(colunas);
// CNPJ/CPF/Código
linhaTexto = new Chunk("CNPJ/CPF/Código".toString(),FontFactory.getFont(FontFactory.TIMES_BOLD,9));
colunas = new PdfPCell(new Paragraph(linhaTexto));
colunas.setBorderColorTop(Color.BLACK);
colunas.setBorderColorBottom(Color.BLACK);
table.addCell(colunas);
// Número do Cliente
linhaTexto = new Chunk("Número do Cliente".toString(),FontFactory.getFont(FontFactory.TIMES_BOLD,9));
colunas = new PdfPCell(new Paragraph(linhaTexto));
colunas.setBorderColorTop(Color.BLACK);
colunas.setBorderColorBottom(Color.BLACK);
table.addCell(colunas);
// Número do Banco
linhaTexto = new Chunk("Número do Banco".toString(),FontFactory.getFont(FontFactory.TIMES_BOLD,9));
colunas = new PdfPCell(new Paragraph(linhaTexto));
colunas.setBorderColorTop(Color.BLACK);
colunas.setBorderColorBottom(Color.BLACK);
table.addCell(colunas);
// Data de pagamento
linhaTexto = new Chunk("Data de pagamento".toString(),FontFactory.getFont(FontFactory.TIMES_BOLD,8));
colunas = new PdfPCell(new Paragraph(linhaTexto));
colunas.setBorderColorTop(Color.BLACK);
colunas.setBorderColorBottom(Color.BLACK);
table.addCell(colunas);
// Forma de Pagamento
linhaTexto = new Chunk("Forma de Pagamento".toString(),FontFactory.getFont(FontFactory.TIMES_BOLD,8));
colunas = new PdfPCell(new Paragraph(linhaTexto));
colunas.setBorderColorTop(Color.BLACK);
colunas.setBorderColorBottom(Color.BLACK);
table.addCell(colunas);
// Valor em (R$)
linhaTexto = new Chunk("Valor em (R$)".toString(),FontFactory.getFont(FontFactory.TIMES_BOLD,9));
colunas = new PdfPCell(new Paragraph(linhaTexto));
colunas.setBorderColorTop(Color.BLACK);
colunas.setBorderColorBottom(Color.BLACK);
table.addCell(colunas);
// Liberação
linhaTexto = new Chunk("Liberação".toString(),FontFactory.getFont(FontFactory.TIMES_BOLD,9));
colunas = new PdfPCell(new Paragraph(linhaTexto));
colunas.setBorderColorTop(Color.BLACK);
colunas.setBorderColorBottom(Color.BLACK);
table.addCell(colunas);
// Identificação
linhaTexto = new Chunk("Identificação".toString(),FontFactory.getFont(FontFactory.TIMES_BOLD,9));
colunas = new PdfPCell(new Paragraph(linhaTexto));
colunas.setBorderColorTop(Color.BLACK);
colunas.setBorderColorBottom(Color.BLACK);
table.addCell(colunas);
table.setWidthPercentage(100);
document.add(table);
} catch(DocumentException de){
System.out.println(de.getMessage());
}catch (IOException ioe) {
System.err.println(ioe.getMessage());
}
document.close();
}
}
Minhas dúvida são o seguinte :
1ª Onde estão os Labels Favorecido até Identificação eu não gostaria que tivesse borda, somente uma linha que passa por cima como por exemplo:
Favorecido__
2º Como centralizar as labels Favorecido, CNPJ/CPF/Código, etc.