Enviar comandos para a impressora em Java

1,589 views
Skip to first unread message

Francisco Geovane Alves da Silva

unread,
May 29, 2013, 3:44:49 PM5/29/13
to ce...@googlegroups.com
Pessoal,
estou tentando enviar um arquivo com comandos específicos para uma impressora (no caso, uma impressora de cartões). Vasculhei durante dias pela internet e não achei uma solução para o problema.

Simplesmente não ocorrem erros: a impressora é chamada (o ícone da impressora aparece), mas nada é impresso. A impressora está na rede e o PC onde o sistema executa consegue comunicação com a impressora.

String defaultPrinter = PrintServiceLookup
                    .lookupDefaultPrintService().getName();
System.out.println("Default printer: " + defaultPrinter);

PrintService service = PrintServiceLookup
                    .lookupDefaultPrintService();

FileInputStream in = new FileInputStream(
                    new File("c:/temp/arq.prn"));

PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
pras.add(new Copies(1));

DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
Doc doc = new SimpleDoc(in, flavor, null);

DocPrintJob job = service.createPrintJob();
job.print(doc, pras);



--
*************************************************
Francisco Geovane [Techway Informática]
Sun Certified Java Programmer 5.0
Sun Certified Web Component Developer 5.0
--------------------------------------------------------------------
GNU/Linux User #400757
e-mail: geo...@techwayinfo.com.br
Twitter: http://twitter.com/cangatux
---------------------------------------------------------------------
"Tem dia que de noite é assim mesmo... e até chove!!"
echo 34307188061207766617450451026540644449490491101237110650443407626P | dc

Roberto Coelho

unread,
May 29, 2013, 4:14:49 PM5/29/13
to [CEJUG]
já verificou as permissões da pasta c:\temp ?


--
Você está recebendo esta mensagem porque se inscreveu no grupo "CEJUG" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para cejug+un...@googlegroups.com.
Para postar neste grupo, envie um e-mail para ce...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
 
 



--

Atenciosamente:  

Roberto Coelho

@betowebti

(85) 8853-8238

"Comece fazendo o que é necessário, e depois o que é possível, de repente você estará fazendo o impossível."

Francisco Geovane Alves da Silva

unread,
May 31, 2013, 8:25:31 AM5/31/13
to ce...@googlegroups.com
Desculpe a demora na resposta...
O problema não é nem o C:\temp, eu vejo via debug que os dados do arquivo foram carregados. O problema é que, mesmo que a impressora seja chamada, não imprime coisa alguma.

Helio Frota

unread,
May 31, 2013, 9:12:03 AM5/31/13
to ce...@googlegroups.com
Usei o seu exemplo e mais outras 4 variações de código que encontrei na internet e também não consigo imprimir via rede aqui.

Helio Frota

unread,
May 31, 2013, 9:17:12 AM5/31/13
to ce...@googlegroups.com
Aqui imprimiu com o diálogo da api mas via código direto não.

JTextField x = new JTextField("abcde");
x.print();


Francisco Geovane Alves da Silva

unread,
May 31, 2013, 9:34:35 AM5/31/13
to ce...@googlegroups.com
Estranho é que usando o Graphic2D ele vai numa boa. E eu até poderia fazer usando ele, mas cai num problema que preciso enviar um comando direto para a impressora (no caso, imprimir em uma trilha magnética).

Sim, funcionou essa abordagem. Só vou saber se ficou 100% (se os comandos serão interpretados pela impressora) quando a impressora de cartões estiver disponível aqui.

Só vou ter de ter cautela com ela, pois é o formato Hidden Power do Gambi Design Patterns heheheh

Helio Frota

unread,
May 31, 2013, 9:36:46 AM5/31/13
to ce...@googlegroups.com
Aqui só funciona chamando o diálogo , pode ser que seja necessário configurar os parametros adicionais da impressora.

https://forums.oracle.com/forums/thread.jspa?messageID=7067473

Francisco Geovane Alves da Silva

unread,
May 31, 2013, 9:55:14 AM5/31/13
to ce...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages