Bom dia !
Tenho um sistema desktop que imprime relatórios em papel a4 e etiquetas de 80mm x 30 mm. O problema acontece quando a impressora padrão não esta configurada para a impressora de etiquetas por exemplo, mesmo que eu mande imprimir nessa impressora, a impressão sai fora dos padrões.
Queria saber se é possivel definir pelo sistema as impressoras pra cada tarefa e o sistema ja setar automaticamente as propriedades dessa impressora, pra não ter necessidade de mudar a impressora padrão pelo windows toda vez que for utilizar uma impressora diferente. Obrigado
Bom Dia
Sim é possivel,
Primeiramente a impressora deve existir no PC que será impresso o relatório, mas não precisa estar como padrão.
O nome da impressora deve estar a igual ao compartilhamento do windows, por exemplo no meu caso é “\\AEEMBARQ\HP LaserJet P2015 Series PCL 6”
Classes que utilizei para impressão.
//Recupera a lista de impressoras disponiveis no PC, que serão utilizadas para efeftivar a impressão
HashPrintRequestAttributeSet obj = new HashPrintRequestAttributeSet();
PrintService[] services = PrintServiceLookup.lookupPrintServices(null,obj);
//Carrego a impressora em um objeto
PrintService escolhida = null;
//perccorre a lista de impressoras e descobre qual impressora deve ser utilziada
for(int index = 0; (index < services.length && escolhida == null); index ++){
if(services[index].getName().toUpperCase().indexOf(nomeCompartilhamento.toUpperCase()) > -1){
escolhida = services[index];
}
}
Depois de armazenado a impressora no objeto PrintService utilizo a classe JRPrintServiceExporter para imprimir meu relatorio.
Obs: Os métodos que utilizo é setParameter e depois exportReport.
Qualquer duvida posso te enviar o exemplo completo.
Fabio
O exemplo é muito bom, mas só não consegui pegar essa parte acima. Valeu.
Desculpe qual parte vc não entendeu?
Não entendi bem, por nunca ter usado, a parte onde vc exporta p/ o relatório a impressora selecionada.
Se puder, poste a parte do código onde vc faz o uso da classe JRPrintServiceExporter e os métodos setParameter e exportReport.
Obrigado mais uma vez.