É possivel imprimir um Relatório sem visualizar ? [RESOLVIDO]

7 respostas
Delaylahma

Galera alguem sabe se é possivel ( sabe como fazer ) para imprimir um relatório feito no IReport sem ter a necessidade de pré visualizar ?

Desde já agradeço
Abraços

7 Respostas

davidbuzatto

Dá uma olhada na documentação do jasper reports que provavelmente tem como sim.

Delaylahma

Estou procurando na net e não acho nenhuma resposta , alguem já precisou fazer isso ?
Sabe como fazer ?
Abraços

F
JRExporter exporter = new  export.JRTxtExporter();

exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,NomeArquivo);

exporter.setParameter(JRExporterParameter.JASPER_PRINT,impressao);

exporter.setParameter(JRExporterParameter.PROGRESS_MONITOR, null);

<a href="//exporter.setParameter">//exporter.setParameter</a>(export.JRTxtExporterParameter.PAGE_COLUMNS, “1400”);

<a href="//exporter.setParameter">//exporter.setParameter</a>(JRTxtExporterParameter.PAGE_ROWS, “400”);

<a href="//exporter.setParameter">//exporter.setParameter</a>(export.JRTxtExporterParameter.CHARACTER_ENCODING, “Unicode”);

exporter.exportReport();

//NomeArquivo é onde e o nome do arquivo .txt q vc quer criar ex:

C:/caminho/arquivo.txt e o impressao é o meu JasperPrint

isso é uma forma de colocar no codifo mas se estiver usando o ireport para ajudar a montar o relatorio pode escolher isso na barra de ferramentas, existe uma opcao de colocar como pdf, direto para impressora etc e via codigo tem essas opcoes tbm

[]´s

F

tem esse codigo tbm

PrintRequestAttributeSet printRequestAttributeSet = new HashPrintRequestAttributeSet();
printRequestAttributeSet.add(MediaSizeName.ISO_A4);

PrintServiceAttributeSet printServiceAttributeSet = new HashPrintServiceAttributeSet();
    printServiceAttributeSet.add(new PrinterName(NomeImpressora, null));                              

      JRPrintServiceExporter exporter = new JRPrintServiceExporter ();
      exporter.setParameter(JRExporterParameter.JASPER_PRINT, MEUJasperPrint);
      exporter.setParameter(JRPrintServiceExporterParameter.PRINT_REQUEST_ATTRIBUTE_SET, printRequestAttributeSet);
      exporter.setParameter(JRPrintServiceExporterParameter.PRINT_SERVICE_ATTRIBUTE_SET, printServiceAttributeSet);
      exporter.setParameter(JRPrintServiceExporterParameter.DISPLAY_PAGE_DIALOG, Boolean.FALSE);
      exporter.setParameter(JRPrintServiceExporterParameter.DISPLAY_PRINT_DIALOG, Boolean.FALSE);

      exporter.exportReport();

[]´s

Metaleiro

[color=darkblue] Existem dois métodos o printPages e o printPage

boolean net.sf.jasperreports.engine.JasperManager.printPages(JasperPrint arg0, int arg1, int arg2, boolean arg3)

O printPage imprime só a página especificada enquanto o printPages imprime todos as páginas , ambos vão para saída da impressora padrão.
[/color]

public void imprimirEtiqueta(Conexao conn, String data, String nome, File fileName ) {
try {
Map parametros = new HashMap();
parametros.put("DATA", data);
parametros.put("NOME", nome);

if (parametros == null)
thorw new exception("Página em branco");

JasperPrint jPrint = JasperManager.fillReport(jReport_Etiqueta, parametros, conn);
int finalPag = jPrint.getPages().size() - 1;
System.out.println("Tamanho da página " +finalPag );

JasperManager.printPages(jPrint, 0 , finalPag ,true);

parametros = null;
jPrint = null;
} catch (Exception e) {
e.printStackTrace();
}

System.gc();
}
}
Delaylahma

FOliverira , e Metaleiro …muito obrigado pela ajuda …
Consegui resolver o meu problema …
Metaleiro o que voce me passou funcionou perfeitamente, só que pra eu imprimir na impressora padrão direto eu coloquei no printPages o boolean como “false” .
:lol:
vlw galera.

root_

Soh uma obs… a JasperManager.printPage(jasperPrint, 0, true); agora é JasperPrintManager.printPage(jasperPrint, 0, true);

Criado 27 de abril de 2007
Ultima resposta 4 de fev. de 2009
Respostas 7
Participantes 5