Estou tendo problemas coma impressora de etiquetas Argox, simplesmente ainda não consegui mandar nada para ela.
O modelo é Argox OS214 tt, aceita PPLA e PPLB.
Uso uma classe generica para conexao com dispositivos seriais, com ela eu usei para varias impressoras fiscais e balancas, segue em anexo. Tudo usando a biblioteca RXTX.
Essa classe tambem consegue ler a resposta do dispositivo, pois ja usei em balancas e nunca tive problemas, assim como nas impressoras fiscais.
Observei o manual da PPLA e vi mais ou menos como funciona mas nao consegui testar nada ainda.
Nao consigo fazer nada sair dela e tambem nao consigo ler sua resposta.
Segue o meu teste:
importjavax.swing.JOptionPane;publicclassTestePPLA{publicstaticvoidmain(String[]args){Stringporta="COM1";intvelocidade=9600;intdatabits=8;intstopbits=1;intparidade=0;inttimeout=10;try{Stringcomando="<STX>L<CR>121100001000050THIS LABEL IS MADE BY JIMMY<CR>E<CR>";ComunicacaoSerialcomunica=ComunicacaoSerial.getReference();comunica.conexao(porta,velocidade,databits,stopbits,paridade);comunica.escritaPortaSerial(comando.getBytes());Thread.sleep(timeout);Stringresposta=newString(comunica.getDados());comunica.fechaConexao();System.out.println(resposta);}catch(Exceptionex){ex.printStackTrace();JOptionPane.showMessageDialog(null,"Erro de comunica\u00e7\u00e3o com a impressora","Testador",JOptionPane.ERROR_MESSAGE);}}}
Primeiro duvida, voce tem certeza que a impressora esta instalada corretamente? Ja fez ela imprimir pelo programa dela ?
Segunda, Qual o erro que esta dando ?
Essa impessora e chatinha.
Att,
G
gqferreira
Tudo ótimo cara,
Sim, a impressora esta corretamente conectada e nao ocorre erro nenhum.
Olhando nesse site http://www.barcodenet.com.br/download.asp#ImpressorasdeetiquetasArgox achei um manual em portugues, com isso eu pude ver que na verdade no lugar do eu devo colocar o caracter ASCII codigo 2, aquela carinha que aparece quando voce presiona alt+2 no windows. O eu ja desconfiava que era o carriage-return (nao sei exatamante se é assim que se escreve), era mesmo, o equivalente a \n. O ASCII dele é o 13. Então eu subsitui essas “tag” por um char com o codigo ASCII equivalente. Funcionou, só que funciona somente pela paralela (LPT), se for enviado pela serial (COM) a impressora nao faz nada. Agora eu tenho outra duvida, há alguma desvantagem em usar a paralela em vez da serial?
Obrigado Oliveira.
M
marcosfonceka
Bom dia.
Poderia me dar mais detalhes a respeito de como imprimir a etiqueta?
Na teoria eu montaria a String com o código dela o PPLB de acordo com o layout da etiqueta. A partir daí eu envio pela serial… usando a classe aí que você deixou como exemplo?
Basicamente é isso?
Poderia me dar uma força nisso, por favor?
Muito obrigado!
S
Suu
marcosfonceka:
Bom dia.
Poderia me dar mais detalhes a respeito de como imprimir a etiqueta?
Na teoria eu montaria a String com o código dela o PPLB de acordo com o layout da etiqueta. A partir daí eu envio pela serial.. usando a classe aí que você deixou como exemplo?
Basicamente é isso?
Poderia me dar uma força nisso, por favor?
Muito obrigado!
Marcos,
Não sei se é tarde para te responder, mas vou deixar registrado aqui, porque também tive dificuldade em conseguir chegar em algo concreto, a minha rotina não esta 100% ainda. Estou com problemas a acentuação, mas talvez seja um caminho pra te ajudar:
Rotina que converte meus caracteres com acento (essa é aparte que ainda não funciona direito:
Rotina que procura a impressora e imprime o texto direto nela:
privatevoidjButton1ActionPerformed(java.awt.event.ActionEventevt){try{//l printer PrintServiceprintService=PrintServiceLookup.lookupDefaultPrintService();converteCaracter(jTextArea1.getText(),jTextArea2);//create a print job DocPrintJobjob=printService.createPrintJob();//define the format of print document InputStreamis=newByteArrayInputStream(jTextArea2.getText().getBytes());DocFlavorflavor=DocFlavor.INPUT_STREAM.AUTOSENSE;//print the data Docdoc=newSimpleDoc(is,flavor,null);job.print(doc,null);is.close();}catch(Exceptione){e.printStackTrace();}}
M
Marcos_Roberto_da_Fo
Olá. Tenho uma dúvida com relação ao seu código:
nesse modelo de impressão direta, a Argox tem que estar instalada, certinho né?
I
ivandm
Pessoal, alguém já usou pela USB?
Tem um exemplo de pegar pelo nome da argox?
H
himorrivel
Quando eu precisei utilizar a impressao, eu utilizei o driver instalado nela
Montei através do printJob como eu queria e em seguida solicitei a impressão…
assim não precisei me preocupar se esta em serial ou usb…
I
ivandm
Certo! Mas ela aceita os comandos por este método?
Informar código de barras e tal…
H
himorrivel
ai no meu caso, eu precisei importar a fonte para o projeto… entao ele imprimiu exatamente da forma que eu desenhei a etiqueta
I
ivandm
Estou testando com o PrintJob…
eu vejo que manda pra impressora pois dá uma piscada na luz ready e também no gerenciador da impressora…
Mas não imprimi… o que pode ser?
H
himorrivel
Fiz uma consulta no meu amigo google, e achei esse exemplo:
importjava.awt.Color;importjava.awt.Graphics;importjava.awt.Graphics2D;importjava.awt.geom.Line2D;importjava.awt.print.PageFormat;importjava.awt.print.Printable;importjava.awt.print.PrinterJob;publicclassJavaWorldPrintExample1implementsPrintable{publicstaticvoidmain(String[]args){JavaWorldPrintExample1example1=newJavaWorldPrintExample1();System.exit(0);}//--- Private instances declarationsprivatefinaldoubleINCH=72;/** * Constructor: Example1 * <p> * */publicJavaWorldPrintExample1(){//--- Create a printerJob objectPrinterJobprintJob=PrinterJob.getPrinterJob();//--- Set the printable class to this one since we//--- are implementing the Printable interfaceprintJob.setPrintable(this);//--- Show a print dialog to the user. If the user//--- click the print button, then print otherwise//--- cancel the print jobif(printJob.printDialog()){try{printJob.print();}catch(ExceptionPrintException){PrintException.printStackTrace();}}}/** * Method: print * <p> * * This class is responsible for rendering a page using the provided * parameters. The result will be a grid where each cell will be half an * inch by half an inch. * * @param g * a value of type Graphics * @param pageFormat * a value of type PageFormat * @param page * a value of type int * @return a value of type int */publicintprint(Graphicsg,PageFormatpageFormat,intpage){inti;Graphics2Dg2d;Line2D.Doubleline=newLine2D.Double();//--- Validate the page number, we only print the first pageif(page==0){//--- Create a graphic2D object a set the default parametersg2d=(Graphics2D)g;g2d.setColor(Color.black);//--- Translate the origin to be (0,0)g2d.translate(pageFormat.getImageableX(),pageFormat.getImageableY());//--- Print the vertical linesfor(i=0;i<pageFormat.getWidth();i+=INCH/2){line.setLine(i,0,i,pageFormat.getHeight());g2d.draw(line);}//--- Print the horizontal linesfor(i=0;i<pageFormat.getHeight();i+=INCH/2){line.setLine(0,i,pageFormat.getWidth(),i);g2d.draw(line);}return(PAGE_EXISTS);}elsereturn(NO_SUCH_PAGE);}}//Example1
verifica se vai imprimir alguma coisa
I
ivandm
Tenho um codigo parecido com esse e pelo menos sai algo… so nao sei como fazer pra utilizar os comandos: