Resultados 1 al 3 de 3

Tema: imprimiendo en Impresora ibm 4610 1NR

  1. #1
    Pajarito Nuevo Avatar de geminis19
    Fecha de ingreso
    27 Feb, 07
    Mensajes
    41

    imprimiendo en Impresora ibm 4610 1NR

    Hola que tal, me compre una impresora fiscal ibm 4610 1NR, viene en modo entrenamiento y con el manual con los comandos y un pequeño ejemplo en pseudocodigo:

    Estoy tratando de imprimir algo en java pereo no puedo:

    pesudocodigo:

    Código:
    Apertura_de_Puerto
        OpenCom_n(19200,8,n,1)
        Control_de_Flujo(DSR)
    Fin_Apertura_de_Puerto
    
    Envia_Comando(String comando)
      String respuesta=””
      Char byte=0x00
    
      //se construye comando agregándole inicio frame(87H) y fin frame(88H)
      comando=0x87+comando+0x88
     
      // se envía al puerto RS232 byte a byte
      Para i=1 hasta largo(comando)
        EscribePuerto(mid(comando,i,1))
      Fin Para
    
      // se lee desde el puerto RS232 byte a byte
      Haga_Mientras(byte <> 0x0D and byte <> 0x0C)
      {
         byte = LeePuerto() // lee byte a byte
         Si (byte==0x0A) Entonces
           Break; //ACK(el comando fue satisfactorio)
         Sino
           respuesta=respuesta+byte //se concatena hasta que llega el fin
          0DH(errores,comando 35 y 48) o 0CH(comando 43 en modo descarga)
         Fin_Si
      }
      Fin_Haga_Mientras
    
    Fin_Envia_Comando
    
    Inicio_de_Boleta
        String comando=””
        comando=”000”
        Envia_Comando(comando)
    Fin_Inicio_de_Boleta
    Java:
    Código:
    package impresora;
    import java.util.List;
    import giovynet.nativelink.SerialPort;
    import giovynet.serial.Baud;
    import giovynet.serial.Com;
    import giovynet.serial.Parameters;
    
    public class Impresora {
    
        /**
         * www.giovynet.com
         * @param args
         */
        public static void main(String[] args) 
        {
            try {
                SerialPort serialPort = new SerialPort();
                List<String> portsFree;
                portsFree = serialPort.getFreeSerialPort();
                
                /**** If there are free ports, use the first found. ****/
                           if(portsFree!=null&&portsFree.size()>0) 
                          {
                    for (String free : portsFree)
                        System.out.println("Free port: "+free);
                    
                    /****Open the port.****/
                                    Parameters parameters = new Parameters();
                    parameters.setPort("COM1");
                    parameters.setBaudRate(Baud._19200);
                    
                    System.out.println("Open port: COM1");
                    
                    Com com = new Com(parameters);
                    
                                    /****Send data.****/
                    System.out.println("Send Data Port: COM1");
                                                        
                    //Inicio boleta, imprimir un logo
                    String comando="ç001ê";
                    for(int i=0; i<comando.toCharArray().length; i++) 
                    {
                        try{
                            com.sendSingleData(comando.toCharArray()[i]);
                        }catch(Exception e){
                            System.out.println("Error=>"+e.getMessage());
                        }
                    }
                    
    
                    String respuesta=new String();
                    byte bytes=0x00;
                    while(bytes!=0x0D && bytes!=0x0C)
                    {                                        
                        bytes=(byte)com.receiveSingleChar();
                        if(bytes==0x0A)
                            break;
                        else
                            respuesta+=bytes;
                        
                        Thread.currentThread();
                        Thread.sleep(500);
                    }
                    
                    
                    System.out.println("response: "+respuesta);
    
                    /****Close the port.****/
                    System.out.println("Close Port: COM1");
                    com.close();
                }
                            else{
                    System.out.println("No Free ports!!!");
                }
            } catch (Exception e) {
                 e.printStackTrace();
            }
        }
    
    }
    el código anterior no imprime nada y la impresora tampoco retorna nada, solo devuelve ceros...

    La descripción del comando según el manual:

    Línea Inicio Boleta ( tipo 00 )
    Posición dentro del frame Contenido
    ç ( Caracter no imprimible 0x87)
    0 ( primer caracter del tipo, no se imprime )
    0 ( segundo caracter del tipo, no se imprime )
    g
    ê ( Caracter no imprimible 0x88)

    Notas:
    g: indicador de impresión de gráfico (logo) precargado ( 1 byte )
    . 0 no imprime
    . 1 sí imprime
    El gráfico será impreso siempre con 200 DPI ( modo normal )
    La IF imprime el encabezado con los datos proporcionados en el comando de seteo de encabezado de
    tienda y con el rut y razón social proporcionados en el proceso de inicialización de la IF.

  2. #2
    Pajarito Nuevo
    Fecha de ingreso
    30 May, 17
    Mensajes
    1

    Re: imprimiendo en Impresora ibm 4610 1NR

    Con las impresoras fiscales te reomiendo no mezclar el envío de hexadecimales con cadenas ASCII. por lo cual modifica tu rutina para que envíe el inicio y termino del frame por separado del comando correspondiente.

    ¿De casualidad tienes el manual que estas siguiendo?.

  3. #3
    Experimentado
    Fecha de ingreso
    03 Sep, 07
    Mensajes
    978

    Re: imprimiendo en Impresora ibm 4610 1NR

    Las impresoras fiscales vienen con las librerias preparadas para ser utilizadas e imprimir sin ningún problema.

    Creo que tu problema va porque no tienes las librerias correspondientes.

    Una de las "gracias" de IBM es que no siempre te entrega todo el material correspondiente a no ser que seas una empresa peso pesado.

    Saludos

LinkBacks (?)

  1. 06/03/2014, 18:20
  2. 1nr.
    Refback This thread
    09/01/2014, 15:02
  3. 18/06/2013, 18:25

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •  
*