JTable.print() em uma lista de Imagens

Opa tudo beleza.

Utilizo o método print do JTable para imprimir um tabela.

Agora, se eu quiser transformar essa saída da impressora e transformar em imagens, uma lista de PNG por exemplo ( ao invés de colocar nas folhas impressas), com cabeçalhos, os render etc etc.

Como poderia ser feito isso ?

Obs: Sei que podemos pegar a tabela e transformar em uma imagem, mas não é isso. Quero o valor daquela impressão, naquela folha x e tranformar em uma imagem. Se a impressão em folha A4 desse 5 páginas, deverei ter 5 imagens com o devido conteúdo.

Até e desde já obrigado

Voce pdoe criar um objeto BufferedImage e usar o paintComponent do JTable para se desenhar no Graphics da imagem.

Depois basta usar a ImageIO para salvar no formato que voce quer.

Ok,

Isso eu já tinha testado

                BufferedImage bu = new BufferedImage( width, height, BufferedImage.TYPE_INT_RGB );

                Graphics g = bu.createGraphics();

                JTable.paint( g );
                g.dispose();

                ByteArrayOutputStream imageArray = new ByteArrayOutputStream();

                ImageIO.write( bu, "png", imageArray );

                //demais coisas etc etc

Dai tenho a imagem da tabela.

Mas eu quero a imagem gerada pelo printable do print, que quebra as páginas, coloca os nomes das colunas em todas as páginas , que faz toda “a magia” de ficar tudo perfeito na saída.

Estou estudando o código da sun, qualquer coisa vou colocando novidades.

Até

Bom dia.

Só para constar e relatar minha solução

Consegui resolver a questão estudando a classe TablePrintable nativa da Sun. Fiz umas modificações no código e o resultado é que tenho, de forma transparente e direta, uma cópia do que será impresso, já separados por páginas, nos formato PNG, JPEG ou qualquer arquivo de imagem que o java suporte.

Reutilizei essa classe pois o código realiza algumas formatações muito interessantes, como:

  • Ajusta o tamanho linhas na página, como o método print faz.
  • Faz as quebras de páginas e recoloca os nomes das colunas em cada página
  • Não coloca o Scroll na imagem
  • Entre outras

Resumindo fica algo muito profissional, diferente de simplesmente pegar o componente e transformá-lo em alguma imagem.

Estou formatando o código para postar de forma mais legível.
Até