JasperReport

Boa tarde,

Estou um problema, tenho uma funcionalidade que estava exibindo um relatorio em PDF. Porem o cliente está com uma necessidade de abrir diretamente o relatorio dentro do i.e. sem que a caixa de download abra.
Estou conseguindo abrir o relatorio no i.e., porem totalmente desalinhado e tal.
Gostaria de saber:

  • Relatorio criados no Jasper, é atrelado como será exibo, ex. para ser exibido em pdf, tem alguma configuração que passo para o relatorio no jasper (quando é exibido em pdf fica alinhado e tal, porem no navegador - html - fica tudo zuado);

Segue o codigo que esta sendo usado para visualizar no navegador.:


try{
			
			byte[] bytes = null;
			
			jrds = new JRBeanArrayDataSource(lista.toArray());
		
    		Map parametros = new HashMap();
    	    parametros.put("pageRoot", context.getRealPath("/"));
    	
    	    if(pathJasper.indexOf("/cancelamento") != -1){
    		parametros.put( "linha_img",context.getRealPath( "/egarantech/pics/linha.jpg") );
    	    }
		   
    	    JasperReport report = (JasperReport) JRLoader.loadObject(context.getRealPath(pathJasper));  

   JRHtmlExporter exporter = new JRHtmlExporter();
    	  
    	    response.setCharacterEncoding("UTF-8"); 
    	    
    	    
    	  	exporter.setParameter(JRExporterParameter.JASPER_PRINT, JasperFillManager.fillReport(report, parametros, jrds));					
			exporter.setParameter(JRHtmlExporterParameter.IS_WRAP_BREAK_WORD, Boolean.FALSE);
			exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "/egarantech/egarantech/pics/");
			exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, response.getWriter());
			exporter.exportReport();

	
		}catch (JRException jre) {
    		jre.printStackTrace();
    	}catch (Throwable e1) {
    		e1.printStackTrace();
    	} 

    	    

Obrigado pela ajuda…

Olá amigo, que eu saiba é assim mesmo. Ele foi feito para ser gerado em pdf, sendo que se não for assim ele vai zuar mesmo.
O ideal seria falar para o cliente usar um pdf Viwer no browser para visualizar o pdf sem precisar fazer o download.
Ou gerar um relatorio alternativo em html.

Tenta botar isso:

	response.setHeader("content-disposition",
					"inline;filename=xxxx");

raf4ever, PedroGuerra

Já usei essa alternativa citada pelo raf4ever e continua todo desformatado.

Ele gera em html sim, pois é usado em um momento no corpo de uma determinada página, todo formatado, direitinho.

Uma dúvida que levantei:

  • O arquivo com extensão . jrxml, no desenvolvimento na ferramnta Jasper, o arquivo é em alguma momento SETADO PARA VISUALIZAÇÃO EM PDF - HTML, DOC, ou somente nós definimos o arquivo a ser visualizado/gerado no código java???

Obrigado

[quote=mococa]raf4ever, PedroGuerra

Já usei essa alternativa citada pelo raf4ever e continua todo desformatado.

Ele gera em html sim, pois é usado em um momento no corpo de uma determinada página, todo formatado, direitinho.

Uma dúvida que levantei:

  • O arquivo com extensão . jrxml, no desenvolvimento na ferramnta Jasper, o arquivo é em alguma momento SETADO PARA VISUALIZAÇÃO EM PDF - HTML, DOC, ou somente nós definimos o arquivo a ser visualizado/gerado no código java???

Obrigado [/quote]
Creio que só no Java.
Testou no Firefox?

Galera,

Estava testando e comentei esta linha:


//exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "/egarantech/egarantech/pics/");

O que aconteceu é que ele formatou todo o relatório, porem as imagens não foram encontradas - entrei no codigo é está tudo null.
Por algum motivo, o relatorio nao esta encontrando imagens.

Grande passo, pois a linha de codigo acima estava desformatando o relatorio, e acabei usando esta linha de outra tela.

Pergunta:

Como setar, ou se verdadeiramente devo setar, alguma propriedade, tanto no java ou no jasper, para as imagens. O que percebi é que esta tentando achar imagens geradas mas nao encontra.

obrigado

Alguem pode me ajudar.