Relatório com Jasper + VRaptor 3 gerando HTML

5 respostas
cleberdiana

Olá pessoal, estou utilizando um relatório Jasper em minha aplicação para gerar um PDF, mas gostaria de gerar um HTML para ser visualizado no Navegador, o meu PDF eu visualizo no Navegador também.

Já olhei em diversos tutoriais e foruns sobre o texto, mas gostaria que alguém me postasse uma solução adequada ao VRaptor 3 e Jasper, eu utilizo o IReport para gerar o arquivo .jasper.

Eu já utilizo também o JasperMaker que nosso amigo nos forneceu em um post aqui no GUJ.

Abraços,
:thumbup:

5 Respostas

Lucas_Cavalcanti

não entendi direito o que vc quer…

vc quer usar o mesmo relatório jasper pra gerar um PDF e um HTML?

cleberdiana

Oi Lucas, na realidade eu quero somente gerar um HTML a partir do arquivo Jasper que eu tenho.

cleberdiana

Estou tentando utilizar o código logo abaixo, mas ele está fazendo download do “teste.htm” e não tem nada.

@Component
public class Relatorio {

	public Relatorio(...){
		...
	}

	public InputStreamDownload relatorioJrds(String jasperFile) 
	{
		jasperFile = jasperDir+jasperFile;
        
		Map<String,Object> parametros = new HashMap<String, Object>(); 
      		parametros.put("titulo", "Relatório de Jasper");
        	parametros.put("jasperPath", jasperDir);
		parametros.put("contextPath", contextDir);
	
		ByteArrayOutputStream exported = new ByteArrayOutputStream();
		JRExporter exporter = new JRHtmlExporter();

		byte[] bytes = null;    
	
        	try {
			JasperPrint print = JasperFillManager.fillReport(jasperFile, parametros);
	
	    		exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, exported);
	      		exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
	        	exporter.exportReport();

	        	bytes = exported.toByteArray();

		} catch (Exception e) {                    
	        	e.printStackTrace();    
	         	return null;    
		}
	        
		return new InputStreamDownload(
        		new ByteArrayInputStream(bytes),
            		"application/html",
            		"teste.htm",
            		false,
            		bytes.length);
	}
}

Eu chamo esse arquivo de:

@Resource
public class RelatoriosController {
	public Download rel() {  
		return this.relatorio.relatorioJrds("report2.jasper");
	}
}
Lucas_Cavalcanti

troca o application/html pra text/html

Lucas_Cavalcanti

se bem que no seu caso, baixe a nova versão do vraptor (3.1.3) e use:

result.use(http()).body(bytes);

ou algo do tipo… se vc conseguir um InputStream, uma String ou um Reader é melhor

Criado 6 de julho de 2010
Ultima resposta 6 de jul. de 2010
Respostas 5
Participantes 2