Bom dia pessoal!!!
Tenho uma aplicação web em JSF e preciso gerar um relatório em PDF, utilizando os tópicos do GUJ, desenvolvi a chamada desse relatório....
Acredito que o código abaixo esteja certo... pois muita gente faz da mesma forma, inclusive aqui no GUJ:
protected void gerarRelatorio() throws SQLException, ClassNotFoundException, JRException, IOException {
setHistoricos(regraDAO.gerarHistoricoPagamentoMetas());
if (!getHistoricos().isEmpty()){
JRDataSource jrDS = new JRBeanCollectionDataSource(getHistoricos());
FacesContext facesContext = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) facesContext.getExternalContext().getResponse();
String pathJasper = FacesUtil.getCurrentDirectory()+"/WEB-INF/classes/br/com/company/system";
String reportFileName = pathJasper + File.separator + "rel_historico_pagamento_metas.jasper";
Map<String, String> parametros = new HashMap<String, String>();
JasperPrint print = JasperFillManager.fillReport(reportFileName, parametros, jrDS);
byte[] bytes = JasperExportManager.exportReportToPdf(print);
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
response.setHeader("Content-disposition", "attachment;filename=rel_historico_pagamento_metas.pdf");
response.setHeader("Cache-Control", "cache, must-revalidate");
response.setHeader("Pragma", "public");
ServletOutputStream outputStream = response.getOutputStream();
outputStream.write(bytes,0,bytes.length);
outputStream.close();
facesContext.responseComplete();
}
}
Executando as linhas acima, o sistema mostra caracteres no browser como os abaixo:
%PDF-1.4 %���� 3 0 obj <>stream x����n�6��z ���*�ԛ�8�I�v/E���.,)��-��ا袷��>@I�R��jD1��0����p8�����G��5�-�� ��=x��]��͟�`�N�?$P�C���9l�����{=_]Ζ�z���cZ��2t��]�G�-�(-��#=x�wE���1����� %�����S��P?�y�� �F�� ��:3(��6J�� �Q�� �ۏ��,;s�ͅ�%����v�FZz;��1qR�:��O�}��Jn�}���~�M�6�q7�@�'Bj�(������*i_��\?��]�~��b-塯T��x�Gn&vjr5�M��>���=�x�b5�0)�L���c�)|8��fu�v�����ۻ�b�h:p:�tQL�V�۵�ߙ�㦙�Ak�ՙ}�]�g��������:�/��劣��;��M_���C��V�4Ib!z���<�.N$�(��2��7�ύ�CI�<�Բ 8���nx�K\^��i;|-��^{��>�)�w}#�O)�{��㆚r^���P��ײ�y��q{�Fv:x�������9��馑����ڰAK�$5x�|"��$����MT�^~�����.�$��=Q{���{���=Ov;�#�E��;�NCC��RyTdel��M���g�uZ|]���s!���u�uW?���4�����̧3���'C���5>��Ǽ1�ưjL�����uc"1ec��Lo��|�������Y�~����=�y7<�F3��5ڑ[���h sY��c�>*�h'�vVƂ��J�<�j+�|���Z�+KHc�$�g�8�W� �ڛ��B&p�R��`�.2�xR��F0a�.�?vNV����;�,�6���9Зt(��=��O�d^2���١�ȋ:s J\�M��t]d@��%��OhH�KےQt�|�u[2�����t��t��}[2����ށ{ӕ(�Օ��v%�Mڕ���>��4f���#4%<��'�7���u�_K��k����j����6��t��Yϳ�=�a����{�T�h�+n�_�����=x�>��x�X�5�R�3>y� 8�D�8q�\g�Hr���۷w�rvs���]ݡ�+�jKh�����%��.ӈv�'�*�:2O��1$�bV7��dw�m2��n�{ͯ�TC�3�/� E�m� ��N��!<��X�S�C�������� Z� endstream endobj 1 0 obj<<<>>>/MediaBox[0 0 595 842]>> endobj 5 0 obj[1 0 R/XYZ 0 854 0] endobj 2 0 obj<> endobj 4 0 obj<> endobj 6 0 obj<> endobj 7 0 obj<> endobj 8 0 obj<> endobj 9 0 obj<> endobj xref 0 10 [telefone removido] 65535 f [telefone removido] 00000 n [telefone removido] 00000 n [telefone removido] 00000 n [telefone removido] 00000 n [telefone removido] 00000 n [telefone removido] 00000 n [telefone removido] 00000 n [telefone removido] 00000 n [telefone removido] 00000 n trailer <]/Info 9 0 R/Size 10>> startxref 2082 %%EOF
Alguém sabe o que pode ser????
Obrigado
