Bom dia, criei alguns relatórios e queria por para download na parte web do java, queria saber como converto em pdf e como passo o pdf para download na pagina web ?
ProdutosBean
public void imprimir() {
try {
String caminho = Faces.getRealPath("/reports/Produtos.jasper");
Map<String, Object> parametros = new HashMap<>();
java.sql.Connection conexao = HibernateUtil.getConexao();
JasperPrint relatorio = JasperFillManager.fillReport(caminho, parametros, conexao);
JasperPrintManager.printReport(relatorio, true);
} catch (JRException erro) {
Messages.addGlobalError("Ocorreu um erro ao tentar gerar o relatório");
erro.printStackTrace();
}
}
Relatório.xhtml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui"
template="/templates/template.xhtml"
>
<ui:define name="conteudo">
<h:outputLabel>
<p:commandButton icon="ui-icon-print" actionListener="#{MBProdutos.imprimir}" />
</h:outputLabel>
</ui:define>
<body>
</body>
</ui:composition>
Mas quando clico no icone não acontece nada
Cara, você pegou algum tutorial para gerar relatórios desktop e não web.
É só procurar por jsf + jasperreports e você terá várias opções diferentes.
O jasper print deve estar imprimindo vários relatórios no teu servidor.