eu tenho um metodo que gera um relatorio em um pdf, o mesmo é exibido para o Usuario..
eu quero fazer a seguinte operação, quando gerar esse relatorio ja enviar direto para impressoa padrão do windows para imprimir.
alguem ja fez algo desse tipo?
esse é meu método que gera o relatorio web
publicvoidimprimirFatura(HttpServletRequestrequest,HttpServletResponseresponse,Faturafatura)throwsException{Map<String,Object>params=newHashMap<String,Object>();OutputStreamops=null;StringvalorFinal="";Stringjasper="";jasper=request.getContextPath()+"/reports/faturaSIAFIsim.jasper";ResultSetrs=imprimirFaturaFacade.gerarFatura(fatura);JRResultSetDataSourcejrRS=newJRResultSetDataSource(rs);Stringhost="http://"+request.getServerName()+":"+request.getServerPort();URLjasperURL=newURL(host+jasper);try{/** * Informo ao browser que a pagina que sera retornada e um arquivo * pdf */response.setContentType("application/pdf");/** * Gero o relatorio e armazeno o stream retornado num array de bytes */byte[]bytes=JasperRunManager.runReportToPdf(jasperURL.openStream(),params,jrRS);/** * Pego uma referencia do outputStream e gravo nele meu array de * bytes */if(bytes!=null){ops=response.getOutputStream();ops.write(bytes);}}catch(JRExceptionex){ex.printStackTrace();}finally{if(ops!=null){ops.flush();ops.close();}}}
(JasperPrint arg0, int arg1, int arg2, boolean arg3)
JasperPrint = você passa o arquivo que gera o resultado para ser impresso:
//JasperPrint impressao = JasperManager.fillReport( “C:\XPTO.jasper” … ) ;
arg1 = página inicial
arg2 = páginal final
arg3 = indica se quer envio direto pra impressoa (coloque false) ou se quer que abra a caixa de diálogo (coloque true).
net.sf.jasperreports.engine.JRException: Invalid page index range : 0 - -1 of 0
at net.sf.jasperreports.engine.print.JRPrinterAWT.printPages(JRPrinterAWT.java:125)
at net.sf.jasperreports.engine.print.JRPrinterAWT.printPages(JRPrinterAWT.java:86)
at net.sf.jasperreports.engine.JasperPrintManager.printPages(JasperPrintManager.java:354)
at br.gov.in.inf.modulo.relatorioFatura.report.ImprimirFatura.imprimirFatura(ImprimirFatura.java:159)
at br.gov.in.inf.modulo.fatura.apresentacao.GerenciaFaturaAction.imprimirFatura(GerenciaFaturaAction.java:442)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:274)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at br.gov.in.inf.filtro.NavegacaoPrincipalFiltro.doFilter(NavegacaoPrincipalFiltro.java:47)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
F
furutani
Parece que o relatório está sem páginas. Tem certeza que o datasource informado tem dados para alimentar o relatório.