Ajuda com Impressão Jasperreport

4 respostas
M

Pessoal, boa noite,
eu tenho um servlet onde imprimo um recibo diretamente na impressora fiscal, porem apos imprimir, a tela fica branca, eu gostaria de redirecionar para outra pagina para continuar a impressão dos recibos como eu faria?

segue o codigo

try {  
              
                	
            String imprEtiq = "cupom";
            ServletContext context = getServletContext();  
            JasperReport relat = (JasperReport)JRLoader.loadObject(  
                    context.getRealPath("/WEB-INF/reports/recibomensalidadesfiscal.jasper"));  
           
            
            // parâmetros, se houverem  
            Map<String, String> parametros = new HashMap<String, String>();

                        
            String matricula = request.getParameter("matricula");
            
            parametros.put("matricula", matricula);
                           
            // direciona a saída do relatório para um stream
            
            JasperPrint jasperPrint = JasperFillManager.fillReport(relat,parametros,conn);
            ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();
            JasperExportManager.exportReportToPdfStream(jasperPrint, arrayOutputStream);
            PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
            //pras.add(new Copies(1));
            PrintServiceAttributeSet psas = new HashPrintServiceAttributeSet();
            psas.add(new PrinterName(imprEtiq, null));
            JRPrintServiceExporter exp = new JRPrintServiceExporter();
            exp.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
            exp.setParameter(JRPrintServiceExporterParameter.PRINT_REQUEST_ATTRIBUTE_SET, pras);
            exp.setParameter(JRPrintServiceExporterParameter.PRINT_SERVICE_ATTRIBUTE_SET, psas);
            exp.setParameter(JRPrintServiceExporterParameter.DISPLAY_PAGE_DIALOG, Boolean.FALSE);
            exp.setParameter(JRPrintServiceExporterParameter.DISPLAY_PRINT_DIALOG, Boolean.FALSE);
            exp.exportReport();

obrigado a todos

4 Respostas

gomesrod

ué… você pode gerar uma página de retorno exatamente da mesma maneira que faria em qualquer outro Servlet.

Dê uma olhadinha nos outros servlets do sistema que está mexendo, com certeza vai achar alguns exemplos em que o servlet direciona o usuário para uma página de resposta.

M

gomesrod obrigado pela resposta,

porem eu nao uso servlets, os servlets eu so uso para gerar os recibos, uso struts2, porem ja tentei no servlet usar o response.sendredirect e nao funciona, após a impressão a tela fica branca e eu tenho que clicar em voltar umas 3 vezes para voltar a pagina onde eu gero outros recibos.

obrigado

gomesrod

Isso, o response.sendRedirect é a maneira de se fazer isso.
A questão é descobrir porque não está funcionando… comece verificando se aparece algum erro no log do servidor. Depois veja se essa resposta de redirecionamento está chegando corretamente ao browser, e se ele está indo para o endereço correto.

A ferramenta firebug pode ajudar bastante nisso.

M

TERIA ALGUMA OUTRA FORMA? PQ EU JA TENTEI UTILIZAR O RESPONSE.SENDREDIRECT E A PAGINA, POREM NAO FUNCIONA.

ABRAÇO E NOVAMENTE OBRIGADO

Criado 12 de junho de 2011
Ultima resposta 13 de jun. de 2011
Respostas 4
Participantes 2