Amigos do PJ,
Fiquei matutando em como fazer para o meu programinha gerar relatórios que pudessem ser impressos sem a necessidade de programas adicionais! Daí bolei a idéia abaixo, que gostaria de compartilhar com a comunidade do PJ para trocarmos idéias, se alguém tiver uma sugestão de aprimoramento da idéia! Aí vai:
[color=“darkblue”]import javax.swing.;
import java.io.;
import java.util.*;
public class Relatorio {
private static File file;
private static FileOutputStream fos;
private static PrintWriter out;
public static void gerar(JTable tabela, String nome){
try{
file = new File("c:/"+nome+".html");
fos = new FileOutputStream(file);
out = new PrintWriter(fos);
out.println("<HTML>");
out.println("<HEAD>");
out.println("<TITLE>Relatório de "+nome+"</TITLE>");
out.println("</HEAD>");
out.println("<BODY>");
out.println("<H1>Relatório de "+nome+"</H1><BR>");
int nColunas = tabela.getColumnCount();
int nLinhas = tabela.getRowCount();
out.println("<TABLE border='1' width='100%'>");
out.println("<TR>");
for(int coluna = 0; coluna < nColunas; coluna++){
out.println(" <TH>"+tabela.getColumnName(coluna)+"</TH>");
}
out.println("</TR>");
for(int linha = 0; linha < nLinhas; linha++){
out.println("<TR>");
for(int coluna = 0; coluna < nColunas; coluna++){
out.println(" <TD>"+tabela.getValueAt(linha,coluna)+"</TD>");
}
out.println("</TR>");
}
out.println("</TABLE>");
out.println("</BODY>");
out.println("</HTML>");
out.println("");
out.flush();
JOptionPane.showMessageDialog(null,"O relatório de "+nome+" foi gerado\ncom sucesso em C:/"+nome+".html","Relatório gerado",JOptionPane.INFORMATION_MESSAGE);
}
catch(Exception ex){
JOptionPane.showMessageDialog(null,"Houve uma falha ao tentar gerar o relatório\n"+ex.getMessage(),"Relatório não gerado",JOptionPane.ERROR_MESSAGE);
}
}
}[/color]