Impressora Argox PPLA

14 respostas
G

Boa tarde senhores.

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:
import javax.swing.JOptionPane;
public class TestePPLA {
	public static void main(String[] args){
		String porta="COM1";
		int velocidade=9600;
		int databits=8;
		int stopbits=1;
		int paridade=0;
		int timeout=10;
		try
		{			
			String comando = "<STX>L<CR>121100001000050THIS LABEL IS MADE BY JIMMY<CR>E<CR>";
			ComunicacaoSerial comunica = ComunicacaoSerial.getReference ();
			comunica.conexao (porta,velocidade,databits,stopbits,paridade);
			comunica.escritaPortaSerial (comando.getBytes());

			Thread.sleep(timeout);
			String resposta = new String (comunica.getDados());

			comunica.fechaConexao();				

			System.out.println(resposta);
		}
		catch(Exception ex)
		{
			ex.printStackTrace();
			JOptionPane.showMessageDialog(null, "Erro de comunica\u00e7\u00e3o com a impressora", "Testador", JOptionPane.ERROR_MESSAGE);
		}

	}
}

14 Respostas

O

Opa cara tudo bem ?

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

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

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
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:
private static void converteCaracter(String linha, JTextArea jTextArea2) throws IOException {
        jTextArea2.setText(null);

//Ç 	128    ×       158   +       188     +       218    °       248
//ü 	129    ?       159   ¢       189     _       219    ¨       249
//é 	130    á       160   ¥       190     _       220    ·       250
//â 	131    í       161   +       191     ¦       221    ¹       251
//ä 	132    ó       162   +       192     Ì       222    ³       252
//à 	133    ú       163   -       193     _       223    ²       253
//å 	134    ñ       164   -       194     Ó       224    _       254
//ç 	135    Ñ       165   +       195     ß       225            255
//ê 	136    ª       166   -       196     Ô       226
//ë 	137    º       167   +       197     Ò       227
//è 	138    ¿       168   ã       198     õ       228
//ï 	139    ®       169   Ã       199     Õ       229
//î 	140    ¬       170   +       200     µ       230
//ì 	141    ½       171   +       201     Þ       231
//Ä 	142    ¼       172   -       202     Þ       232
//Å 	143    ¡       173   -       203     Ú       233
//É 	144    «       174   ¦       204     Û       234
//æ       145    »       175   -       205     Ù       235
//Æ       146    _       176   +       206     ý       236
//ô       147    _       177   ¤       207     Ý       237
//ö       148    _       178   ð       208     ¯       238
//ò       149    ¦       179   Ð       209     ´       239
//û       150    ¦       180   Ê       210     ­       240
//ù       151    Á       181   Ë       211     ±       241
//ÿ       152    Â       182   È       212     _       242
//Ö       153    À       183   i       213     ¾       243
//Ü       154    ©       184   Í       214     ¶       244
//ø       155    ¦       185   Î       215     §       245
//£       156    ¦       186   Ï       216     ÷       246
//Ø       157    +       187   +       217     ¸       247}


        for (Character c : linha.toCharArray()) {
            switch (c) {
                case 'á':
                    c = 160;
                    break;
                case 'à':
                    c = 133;
                    break;
                case 'â':
                    c = 131;
                    break;
                case 'ã':
                    c = 134;
                    break;
                case 'é':
                    c = 130;
                    break;
                case 'è':
                    c = 138;
                    break;
                case 'ê':
                    c = 136;
                    break;
                case 'í':
                    c = 161;
                    break;
                case 'ì':
                    c = 141;
                    break;
                case 'î':
                    c = 140;
                    break;
                case 'ó':
                    c = 162;
                    break;
                case 'ò':
                    c = 149;
                    break;
                case 'õ':
                    c = 235;
                    break;
                case 'ô':
                    c = 147;
                    break;
                case 'ú':
                    c = 163;
                    break;
                case 'ù':
                    c = 151;
                    break;
                case 'û':
                    c = 150;
                    break;
                case 'Ã':
                    c = 199;
                    break;
                case 'À':
                    c = 183;
                    break;
                case 'Á':
                    c = 181;
                    break;
                case 'Â':
                    c = 182;
                    break;
                case 'É':
                    c = 144;
                    break;
                case 'È':
                    c = 212;
                    break;
                case 'Ê':
                    c = 210;
                    break;
                case 'Í':
                    c = 214;
                    break;
                case 'Ì':
                    c = 222;
                    break;
                case 'Î':
                    c = 215;
                    break;
                case 'Ó':
                    c = 224;
                    break;
                case 'Ò':
                    c = 227;
                    break;
                case 'Õ':
                    c = 229;
                    break;
                case 'Ô':
                    c = 226;
                    break;
                case 'Ú':
                    c = 233;
                    break;
                case 'Ù':
                    c = 234;
                    break;
                case 'Û':
                    c = 235;
                    break;
                case 'ç':
                    c = 135;
                    break;
                case 'Ç':
                    c = 128;
                    break;
                case 'º':
                    c = 167;
                    break;
            }
            jTextArea2.setText(jTextArea2.getText() + c);
        }
    }
Rotina que procura a impressora e imprime o texto direto nela:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        try {
 
                //l printer   
                PrintService printService = PrintServiceLookup.lookupDefaultPrintService();

                converteCaracter(jTextArea1.getText(), jTextArea2);

                //create a print job   
                DocPrintJob job = printService.createPrintJob();

                //define the format of print document   
                InputStream is = new ByteArrayInputStream(jTextArea2.getText().getBytes());
                DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;

                //print the data   
                Doc doc = new SimpleDoc(is, flavor, null);
                job.print(doc, null);
                is.close();

        } catch (Exception e) {
            e.printStackTrace();

        }

    }
M

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

Pessoal, alguém já usou pela USB?

Tem um exemplo de pegar pelo nome da argox?

H

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

Certo! Mas ela aceita os comandos por este método?

Informar código de barras e tal…

H

ai no meu caso, eu precisei importar a fonte para o projeto… entao ele imprimiu exatamente da forma que eu desenhei a etiqueta

I

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

Fiz uma consulta no meu amigo google, e achei esse exemplo:

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Line2D;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import java.awt.print.PrinterJob;

public class JavaWorldPrintExample1 implements Printable {
  public static void main(String[] args) {

    JavaWorldPrintExample1 example1 = new JavaWorldPrintExample1();
    System.exit(0);
  }

  //--- Private instances declarations
  private final double INCH = 72;

  /**
   * Constructor: Example1
   * <p>
   *  
   */
  public JavaWorldPrintExample1() {

    //--- Create a printerJob object
    PrinterJob printJob = PrinterJob.getPrinterJob();

    //--- Set the printable class to this one since we
    //--- are implementing the Printable interface
    printJob.setPrintable(this);

    //--- Show a print dialog to the user. If the user
    //--- click the print button, then print otherwise
    //--- cancel the print job
    if (printJob.printDialog()) {
      try {
        printJob.print();
      } catch (Exception PrintException) {
        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
   */
  public int print(Graphics g, PageFormat pageFormat, int page) {

    int i;
    Graphics2D g2d;
    Line2D.Double line = new Line2D.Double();

    //--- Validate the page number, we only print the first page
    if (page == 0) {  //--- Create a graphic2D object a set the default parameters
      g2d = (Graphics2D) g;
      g2d.setColor(Color.black);

      //--- Translate the origin to be (0,0)
      g2d.translate(pageFormat.getImageableX(), pageFormat
          .getImageableY());

      //--- Print the vertical lines
      for (i = 0; i < pageFormat.getWidth(); i += INCH / 2) {
        line.setLine(i, 0, i, pageFormat.getHeight());
        g2d.draw(line);
      }

      //--- Print the horizontal lines
      for (i = 0; i < pageFormat.getHeight(); i += INCH / 2) {
        line.setLine(0, i, pageFormat.getWidth(), i);
        g2d.draw(line);
      }

      return (PAGE_EXISTS);
    } else
      return (NO_SUCH_PAGE);
  }

} //Example1

verifica se vai imprimir alguma coisa

I

Tenho um codigo parecido com esse e pelo menos sai algo… so nao sei como fazer pra utilizar os comandos:

c0050LD11130000000200020COUNT :130000000200100123-01^02Q0003E

E

altere os por “\u0002”
os por “\r”
e os E por “\u0045”

I

Vlw pelo retorno Dr.

Com muita pesquisa consegui achar esses códigos, mas era isso mesmo!

Abraço,

Criado 30 de julho de 2010
Ultima resposta 30 de jun. de 2014
Respostas 14
Participantes 8