Imprimir direto Web

Bom dia Pessoal,

Estou com problemas e preciso da ajuda de vocês, é o seguinte tenho uma aplicação web na qual salvo os dados e preciso enviar o relatorio com os dados salvo diretamente para impressora, ja consigo salvar e gerar o relatorio para o usuario imprimir, mas o que o cliente realmente quer é que vá diretamente para impressora sem abrir a tela para ele imprimir. Na hora que estou utilizando o comando JasperFillManager.fillReportToStream ele da erro e não me dar opções de resolução, no meu projeto ja existe as bibliotecas commons-logging e mesmo assim da erro, vocês poderiam me ajudar por favor.


Segue o codigo:

/**
	 * @todo passar os relatórios antigos para o sql via jasper
	 */
	public void geraRelatorio(){
		InputStream relatorioStream = null;
		RelatorioBase relatorioBase =  getRelatorioBase();
		ParametrosRelatorios parametrosRelatorios = getParametrosRelatorios();
		parametrosRelatorios.setFigurasPathReports(getFigurasPathReports());
		
		//setando subtipo se apenas o tipo tiver sido selecionado
		if (parametrosRelatorios.getSubTipoSolicitacao() == null && getSelTipoSolicitacao() != null && 
				getSelTipoSolicitacao().getValue() != null){
			
			SubTipoSolicitacao subTipoSolicitacao = new SubTipoSolicitacao();
			subTipoSolicitacao.setTipoSolicitacao((TipoSolicitacao) getSelTipoSolicitacao().getValue());
			parametrosRelatorios.setSubTipoSolicitacao(subTipoSolicitacao);
		} 

		//setando os parametros para as buscas
		relatorioBase.setParametrosRelatorios(getParametrosRelatorios());
		
		//setando o complemento do titulo		
		relatorioService.getComplementoTitulo(relatorioBase);
		
		//caso a unidade escolhida seja a de emergencia deve ser acrescentada um comando ao sql
		if(parametrosRelatorios.getGrupoLocal() != null && parametrosRelatorios.getGrupoLocal().equals(0)){
			parametrosRelatorios.setUnidadeEmergencia(true);
		}
		//setando valor da checkbox
		relatorioBase.getParametrosRelatorios().setKitsNaoEntregues(kitsNaoEntregues);
		
		//relatorioBase.getParametrosRelatorios().setTempoAtendimentoRegulacao(tempoAtendimentoRegulacao);
		
		
		
		
		//setando parametros para mostrar no relatorio
		Map parametrosMap = relatorioService.preencherParamentrosParaRelatorio(relatorioBase.getParametrosRelatorios());
		relatorioBase.setParametros(parametrosMap);

		try {
			//preenchendo os dados do relatório
			relatorioBase = relatorioService.preencherRelatorioBasePorCodigo(relatorioBase);	
		} catch (OutOfMemoryError e) {
			addMessage(FacesMessage.SEVERITY_FATAL, "Não foi possível realizar a consulta para o seu relatório, por favor tente novamente" +
					" restringindo sua consulta, preenchendo algum filtro ou reduzindo o período.", null);	
			erroRelatorio();
		}
		
		//para mais seguranca, o real nome do relatorio e setado na hora de gera-lo
		relatorioBase.setNome(getPathReports()+relatorioBase.getNome()+ "_cluf.jasper");
		
		try {
			ServletOutputStream responseStream = response.getOutputStream();	
			
			relatorioStream = new BufferedInputStream(new FileInputStream(relatorioBase.getNome()));
			
			JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(relatorioBase.getCollection());

			if(relatorioBase.getCodigoTemplate() <= 9){
				JasperRunManager.runReportToPdfStream(relatorioStream, responseStream, relatorioBase.getParametros(), ds);	
			}else{
				JasperRunManager.runReportToPdfStream(relatorioStream, responseStream, relatorioBase.getParametros(), dataSource.getConnection());	
			}
			JasperPrint impressao = null;
			impressao = JasperFillManager.fillReportToStream(relatorioStream, responseStream, relatorioBase.getParametros(), dataSource.getConnection());
			//(relatorioStream, responseStream, relatorioBase.getParametros(), dataSource.getConnection());	//(faturaSIAFIsim_all.jasper", params, jrRS);   
		                			                 
			JasperPrintManager.printPages(impressao, 0 , 0 ,false);  
			
            response.setContentType(relatorioBase.getTipo());  
            responseStream.flush();  
            responseStream.close();	
            context.responseComplete();  
			
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (JRException e) {  
			e.printStackTrace();  
        } catch (Exception e) {
			e.printStackTrace();
		}
	}

Estou para ver um site em que eu entre, chame uma página e já saia imprimindo.

Antigamente o Internet Explorer, via VBScript no browser, permitia isso; hoje em dia nem sei mais se isso funciona…

Se você achar um site desses, copie o Javascript que faz essa mágica e mande para a gente.

De qualquer forma, isso não se resolve nesse nível do JasperReports - que se responsabiliza por gerar o PDF. Isso é coisa do browser e se resolve via JavaScript.

me surgiu uma duvida, como pretende setar a impressora ?

http://archive.plugins.jquery.com/project/PrintArea

n testei somente sei da existencia …