Olá a todos,
tenho uma aplicação em jsf que preciso exibir um documento para impressão.
utilizei o ireport pra fazer o jrxml e coloquei estilos
"... a empresa <style isBold=\"true\" pdfFontName=\"Times-Bold\">"
+$F{empresa}+"</style>, a iniciar ..."
Quando mando "Executar Relatório" pelo próprio IReport, o pdf sai certinho.assim:
... a empresa nomeDaEmpresa, a iniciar ...
mas quando executo o pdf da aplicação, sai assim:
... a empresa , a iniciar ...
chamo o relatorio assim:
public byte[] geraImpressao(String diretorioProjetos, ResultSet rs) {
JRResultSetDataSource jrs = new JRResultSetDataSource(rs);
Map parametros = new HashMap();
try {
JasperPrint jp = JasperFillManager.fillReport(diretorioProjetos,
parametros, jrs);
return JasperExportManager.exportReportToPdf(jp);
} catch (JRException e) {
e.printStackTrace();
}
GeraRelatorioGenericoPDF gera = new GeraRelatorioGenericoPDF();
byte[] bytes = gera.geraImpressao(
((ServletContext) FacesContext
.getCurrentInstance()
.getExternalContext().getContext())
.getRealPath(File.separator)
+ "WEB-INF"
+ File.separator
+ "classes"
+ File.separator
+ "relatorios"
+ File.separator
+ "assentamento"
+ File.separator
+ "alvaraConstrucao.jasper", rs);
((HttpServletRequest) FacesContext
.getCurrentInstance().getExternalContext()
.getRequest()).getSession().setAttribute(
"relatorioPDF", bytes);
public class RelatorioPDFServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest arg0, HttpServletResponse arg1)
throws ServletException, IOException {
byte[] bytes = (byte[]) arg0.getSession().getAttribute("relatorioPDF");
arg1.setContentType("application/pdf");
arg1.addHeader("Content-Type", "application/pdf");
arg1.getOutputStream().write(bytes, 0, bytes.length);
arg1.flushBuffer();
}
}
alguém sabe como resolver isso e que quando eu chamar um relatorio pela aplicação ele vir com os estilos e em pdf?
obrigado.
SOLUÇÂO:
Era só a versão das libs no projeto. atualizei-as para a versão 3.0 e funcionou legal.
valeu