PDF gerado com JasperReport não aparece

2 respostas Resolvido
programaçãojasperspringjavamysql
B

Estou tentando “chamar” um relatório mas não e exibido no browser, estou usando este exemplo encontrado na net;

@RequestMapping(value = "/teste2", method = RequestMethod.GET)
    public ModelAndView generateReport() throws SQLException {
    	  Connection con = null;
    	  ModelAndView mv = new ModelAndView("academia/pesquisa-alunos");
    	  try {
    	    Class.forName("com.mysql.jdbc.Driver");
    	    con = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/xxxx","root", "xxxxx");
    	    System.out.println("Compiling report...");
    	    JasperReport jasperReport = JasperCompileManager.compileReport("/home/xxxx/report/teste2.jrxml");
    	    System.out.println("Filling report...");
    	    JasperFillManager.fillReport(jasperReport,new HashMap<String, Object> (), con);
    	    System.out.println("Done!");
    	    
    	    JasperPrint print = JasperFillManager.fillReport(jasperReport, null);
            byte[] pdf = JasperExportManager.exportReportToPdf(print);
           
     	  } catch (JRException e) {
    	    e.printStackTrace();
    	  } catch (ClassNotFoundException e) {
    	    e.printStackTrace();
    	  } catch (SQLException e) {
    	    e.printStackTrace();
    	  } finally {
    	    if (con != null){
    	      con.close();
    	    }
    	  }
		return mv;
    	}

CONSOLE

Compiling report…
Filling report…
Done!

2 Respostas

R

Mas vc não tem nenhum código que faça isso. Nada ali é referente a exibir o PDF, vc apenas está GERANDO o pdf, que está na variável pdf. Exibir ele é outra história.
Vc citou exibir no navegador, se for projeto web é de uma forma, se for desktop é de outra.

B
Solucao aceita
Olá <a class="mention" href="/u/rodrigo_void">@Rodrigo_Void</a> agradeço pela resposta, eu estava mesmo procurando algo para exibir o PDF a mais de 4 dias, e acabei de  encontrar algo que deu certo;

<strong>FOI APENAS UM TESTE QUE FUNCIONOU</strong>

@Controller

public class MateriReportController {
@Autowired private PessoaRepository pessoaRepository;

@RequestMapping("/materi")
public ModelAndView generateReportMateri(ModelAndView m, 
    @RequestParam(value = "format", required = false) String format){
    Object data = pessoaRepository.findAll();
    m.addObject("dataSource", data);
    m.addObject("format", "pdf");

    if(format != null && !format.isEmpty()){
        m.addObject("format", format);
    }
    
    m.setViewName("report_materi");
    return m;
}

}
MvcCnfig.java

@Bean
public JasperReportsViewResolver getJasperReportsViewResolver() {
    JasperReportsViewResolver resolver = new JasperReportsViewResolver();
    resolver.setPrefix("classpath:/reports/");
    resolver.setSuffix(".jrxml");
    resolver.setViewNames("report_*");
    resolver.setViewClass(JasperReportsMultiFormatView.class);
    resolver.setOrder(0);
    return resolver;
}

http://localhost:8080/materi

tambem encontrei um projeto que possa servir como exemplo;

youtube; https://www.youtube.com/watch?v=X6IhY9GBbOg

“Simplesmente so isso rs”, so preciso saber agora como pegar o parâmetro como acabei de fazer  estou conseguindo imprimir tudo.

sabem?

<aside class="quote" data-post="1" data-topic="347938">
  <div class="title">
    <div class="quote-controls"></div>
    <img alt="" width="20" height="20" src="/letter_avatar_proxy/v2/letter/b/e495f1/40.png" class="avatar">
    <a href="//www.guj.com.br/t/como-enviar-parametros-para-o-jasper-report-com-spring/347938?source_topic_id=347865">Como enviar parâmetros para o Jasper Report com Spring?</a> <a class="badge-wrapper  bullet" href="/c/programacao/java">Java</a>
  </div>
  <blockquote>
    So consigo enviar a lista de pessoa pelo dataSouce, tentei fazer a pesquisa pelo findOne e o relatorio vem em branco, tentei apenas por teste enviar usando o " HashedMap parametro = new HashedMap()" porem não sei como envialo para o jasper, como posso resolver isso? 
@Autowired private PessoaRepository pessoaRepository;

@RequestMapping("/materi")
public ModelAndView generateReportMateri(ModelAndView m, 
    @RequestParam(value = "format", required = false) String format){
    Object data = pess…
  </blockquote>
</aside>
Criado 2 de maio de 2017
Ultima resposta 3 de mai. de 2017
Respostas 2
Participantes 2