Imprimir VIEW

1 resposta
javamysql
C

Boa tarde, é possível imprimir uma view direto do java? Estou pensando em utilizar essa função se existir para fazer relatórios! Se tiverem outras ideias estou disposto a aceitar, obrg. E lembrando utilizando banco de dados mysql, para imprimir tais ações.

1 Resposta

staroski

Sim, todo componente possui um método paint(Graphics), então se você quer imprimir uma janela inteira, por exemplo, você vai criar um objeto BufferedImage, criar um Graphics a partir do BufferedImage e aí mandar a janela se pintar no graphics dessa forma:
minhaJanela.paint(meuObjetoGraphics);

Feito isso, é só salvar o objeto BufferedImage em arquivo.

Abaixo um método pronto que faz isso:

void gravarImagem(Component componente, String tipo, String arquivo) {
	try {
		Dimension tamanho = componente.getSize();
		BufferedImage imagem = new BufferedImage(tamanho.width,
		                                         tamanho.height,
					                 BufferedImage.TYPE_INT_RGB);
		Graphics2D graphics = imagem.createGraphics();
		componente.paint(graphics);
		ImageIO.write(imagem, tipo, new File(arquivo));
	} catch(Exception e) {
		e.printStackTrace();
	}
}

Exemplo de uso
gravarImagem( meuComponente, "png", "arquivo.png" )

Criado 23 de novembro de 2016
Ultima resposta 23 de nov. de 2016
Respostas 1
Participantes 2