Imagem no JasperReport/IReport

12 respostas
P

Pessoas,

Estive pesquisando e não encontrei nada a respeito.

Tenho um sistema Web onde gero os relatórios utilizando JasperReport/IReport.

Nesses relatórios aparece uma imagem fixa em todos, o logo da empresa.

Para especificar o caminho da imagem tenho q colocar o caminho completo, senão na hora que tento gerar pelo Java não aparece a imagem.

Alguém ja precisou colocar uma imagem fixa no relatório e sabe como fazer para por com o caminho relativo?

Sei que é uma pergunta boba e deve ser fácil resolver, mas to apanhando disso ja fazem dias.

Valew

12 Respostas

M

Eu tb estou com o mesmo problema…

se conseguir me da um toque. pq tb estou pesquisando!

Ate+

P

Pode deixar.

Se conseguir resolver posto aqui a solução.

M

okay amigo. espero que consigua, tb estou tentanto…

quem conseguir primeiro… da um toque…

contatos:
[email removido]
skype marciofermino
ate + valeu !

E

passa a imagem como paramentro…

na imagem vc tem a opção de falar o tipo…

fala que e um inputStream depois na action ou no MBean vc passa pela a imagem e envia para o relatorio.

M

amigo vc teria um exemplo… ?

E

cara na boa, vai nas propriedades da imagem da uma olhada nas abas eu não lembro de cabeça acho que a a terceira aba e vc vai ver lá o tipo de parameto que ele aceita vc coloca InputStream mesma coisa no parametro.

ai e só mandar o parametro.

P

Nao foi da maneira que o amigo ai indicou, usando input stream, mas consegui fazer passando uma string no lugar d aimagem, com o caminho da imagem.

Se não conseguiu marciofermino, da um toque que te passo direitinho como eu fiz.

Se mais alguém tiver interesse da um toque.

Abraços

A

Estou com o mesmo problema… Alguém conseguiu ???

PS: desculpem pelo Tópico que renasce, mas achei melhor isso do que abrir um Tópico novo…

Abs []

F

Pessoal, tem o exemplo que possa postar? Estou apanhando com o caminho relativo, dá o seguinte erro: net.sf.jasperreports.engine.JRException: Byte data not found at location : Brasao.jpg

L

bom vamos la:

public static final String IMAGES_DIR = "/br/com/sanepar/sos/reports/jasper/images";

public static final String IMAGE_TOPO_DEFAULT =IMAGES_DIR+"/sos_topo_peq";


	/** Extensao default para tratamento dos arquivos .jpg */
	public static final String REPORT_EXTENSION_IMAGES = ".jpg";

//caminho da imagem 
	private final String imagePath = SosReportConstraints.IMAGE_TOPO_DEFAULT
			+ Constraints.REPORT_EXTENSION_IMAGES;


//setando a imagem como parametro
		parametersMap.put("IMAGE_TOPO", ReadImageAsByteArray(imagePath));


//metodo para ler a imagem e transformar em byte[]
public byte[] ReadImageAsByteArray(String filename) throws IOException {
		byte[] buffer = new byte[1024];
		InputStream is = this.getClass().getResourceAsStream(filename);
		ByteArrayOutputStream out = new ByteArrayOutputStream();
		while (is.read(buffer) != -1) {
			out.write(buffer);
		}		
		return out.toByteArray();		
	
	}
no Ireport vc inclui um objeto image e na aba Image dele vc coloca em expressao da imagem isso:

new ByteArrayInputStream((byte[])$P{IMAGE_TOPO})


Em classe da expressao da imagem vc seta como InputStream
 Em dimensionar Imagem vc seta como manter forma.

vc tambem deve criar um parametro com o nome de IMAGE_TOPO e seta- lo como do tipo Object.

aki no meu projeto a imagem fica dentro de um projeto ejb no caminho demostrado acima, vc pode colocar ela no projeto web que eh mais adequado.
Agora vai funfar

T+

F

Valeu, mas acabei colocando um objeto imagem e na expression coloquei um parâmetro String e na hora de chamar no código dou o caminho relativo e concateno com uma função: context.getRealPath… Depois posto o código aqui e que não estou no trabalho…

R

Amigo Se puder Colocar o Exemplo que deu certo.Ficaria Grato uma vez que tb estou com essa duvida!!

Criado 10 de dezembro de 2007
Ultima resposta 27 de ago. de 2012
Respostas 12
Participantes 7