[RESOLVIDO] Jasper Reports Não funciona no Linux

9 respostas
R

Pessoal tenho uma aplicação que gera um PDF pelo Jasper e imprime ele em uma nova aba do navegador.
No windows ele funciona certinho. Mando gerar o relatório e ele cria a nova aba com o PDF aberto, porém quando rodo ele na tranqueira de uma máquina com Ubuntu ele não funciona. No firefox do linux ele tenta fazer download, ja no chrome ele da a mensagem : Este tipo de arquivo pode danificar seu computador. Você quer mante-lo <nome do arquivo> de qualquer maneira ? Ai aparece os botões Descartar e Salvar.

Tem algo de especial que tem que fazer para a geração do PDF ter o mesmo comportamento no linux e no windows ?

Eu faço a chamada ao relatório da seguinte maneira :

JRBeanCollectionDataSource beanCollectionDataSource = new JRBeanCollectionDataSource(
                JasperBeanFactory.createBeanCollection());
        InputStream inputStream = ClassLoaderUtils.getDefaultClassLoader().getResourceAsStream(
                "br/com/sw2/gac/jasper/report/dispositivoEstado.jasper");

        try {
            Map&lt;String, Object&gt; parameters = new HashMap&lt;String, Object&gt;();
            parameters.put("LOGO", getUrlBase()+ "/logo.jpg");
            JasperPrint jasperPrint = JasperFillManager.fillReport(inputStream, parameters,  beanCollectionDataSource);
            HttpServletResponse response = getHttpServletResponse();
            response.setContentType("application/pdf");
            ServletOutputStream servletOutputStream = (ServletOutputStream) getHttpServletResponse()
                    .getOutputStream();
            JasperExportManager.exportReportToPdfStream(jasperPrint, servletOutputStream);
        } catch (Exception e) {
          //Tratar
        }

Vlw

9 Respostas

D

Se você estiver usando sub report (um relatório com várias partes cabeçalho/rodapé etc…) verifique qual o caminho que ele está usando para formar as partes do relatório.
Caminhos com “” ou com “\” não vão funcionar…
Outra coisa, mas acho que não tem nada a ver no seu caso, com o linux costuma ter problema com o tipo de fonte (time, arial etc…) padrão que o ireport assume no Windows, no caso no linux ele não possui por se tratar de fontes proprietárias ai no caso para funcionar tem que instalar a parte ou trocar no relatório.

R

Realmente devlinux2, eu tive problema de fontes antes desse erro. eu tinha criado o cabeçalho do relatório com Arial ai começou a dar exception. Pra resolver assumi uma fonte padrão que acho deve ser padrão do IReport : SansSerif

R

Bom, li varios textos na internet e vi que mais gente tem esse problema. Ou seja o problema é o Linux. Alias essa joça so presta pra ser servidor mesmo.

D

O loco mano, apela não, o windows tem vários outros problemas também.
Por isso que o futuro é a web!

A

rogeriosantos77:
Bom, li varios textos na internet e vi que mais gente tem esse problema. Ou seja o problema é o Linux. Alias essa joça so presta pra ser servidor mesmo.

O problema não é o Linux, o problema são as fontes que são proprietárias e, por causa disso, não estão presentes nas distribuições do Linux que seguem a filosofia opensource à risca (Fedora, por exemplo).

Pense um pouco, se você estivesse programando no Linux e fizesse uso de um recurso que não estivesse no Windows a culpa seria do Windows ou seria sua, por ter feito uso de um recurso que “mata” a portabilidade entre as plataformas?

E, no seu caso, a solução é simples: basta usar as fontes padrão do JasperReports. Ele, inclusive, já as embute no jar pra não te dar dores de cabeça.

R

Os problemas aqui não são as fontes, o assunto das fontes surgiu por acaso e ja foi resolvido. O problema aqui é que ele não abre o PDf no browser porque o Firefox e o Chromium não tem plugins para visualizar PDF. Agora instala um plugin nesses navegadores pra ver se funciona. Funciona nada. É cheio de tutorial na internet falando como instalar só que nenhum funciona. Um fala para instalar o mozplugger que ele resolve o problema. Instalei e nada. Outro fala pra usar o acroread, ai tenta instalar pra ver se vc consegue, consegue nada, primeiro que ja é um parto achar o repositório que tem ele. Um fala em usar o PDF View, so que ele abre o PDF e se o PDF tiver gráfico ele não exibe.
Ai eu pergunto, o que adianta o linux ser um sistema tão robusto e bom se coisas básicas como abrir um PDF em um modal ou nova aba você não consegue fazer.
Assim minha opinião pessoal, é insanidade uma maquina desktop usar Linux, para mim linux é coisa de servidor somente, se fosse bom mesmo tinha desbancado o windows ou ios nos micros domésticos por ai a muito tempo.

A

rogeriosantos77:
Ou seja o problema é o Linux. Alias essa joça so presta pra ser servidor mesmo.

não só para servidor, mas para desenvolvedor também.

mas não esquenta, não é estranho ver um ‘programador’ com este pensamento.

A

O fato de o Linux não ter desbancado o Windows não diz respeito a qual é o melhor, se assim fosse as fitas VHS não seriam usadas, o teclado QWERTY também não e uma infinidade de projetos muito superiores teriam invadido as lojas se não fossem os interesses comerciais envolvidos. Quantos projetos não são comprados para serem engavetados por serem uma ameaça a monopólios? Não quero levar isso muito longe, só estou demonstrando que, se algo é mais usado que outro, não significa realmente que aquele seja o melhor.

Eu tenho ódio de muita coisa no Linux, o que posso modificar eu modifico (opensource está aí pra isso), mas as coisas proprietárias que precisamos não temos como modificar.

É um saco você comprar um notebook com um leitor de impressão digital e ver que o fabricante não tem driver pra Linux ou, bizarramente, só funciona com uma distro X. A culpa disso é de quem?

Isso dá uma boa discussão…

R

aix quer dizer então que o SO é so para Desenvolvedor usar ? Se um advogado quiser não pode ? Qdo eu coloco aqui minha impressão do SO, não significa que minha opinião é imutável, significa que minhas ultimas impressões dizem que o SO não atende minhas expectativas, entretanto opiniões inteligentes e com conteúdo como a do Ataxexe e devlinux2 podem por exemplo me mostrar que eu estou deixando de considerar algo importante ou me dar pontos para pensar.
Comentários como esse seu são lastimáveis e inúteis, so para lembrar você isso não é um fórum de joguinhos que você entra pra comentar coisas com seus amiguinhos da escola. Se você não tem uma solução para o problema apresentado ou um texto interessante sobre o tema, faz um favor vai brincar na rua com seus amigos.

Criado 29 de agosto de 2012
Ultima resposta 6 de set. de 2012
Respostas 9
Participantes 4