none
imprimir PDF417 con ESC/POS RRS feed

  • Pregunta

  • Estimados estoy un poco complicado y necesito de su ayuda para realizar una impresión de un PDF417 usando ESC/POS.

    Estoy trabajando en un equipo móvil con linux y manejado con  lenguaje PERL, en el cual he conectado una pequeña impresora. A esta le envío algunos comandos de impresión los cuales me reconoce unos y otros simplemente no. Obviamente hay un tema de que mi experiencia en esto es de apenas 2 días y es muy problable que algo esté haciendo mal y no me halla dado cuenta. Es por eso que pongo aquí el codigo que estoy usando para que me ayuden a saber que es lo que estoy haciendo mal y si me pueden ayudar a imprimir el pdf417.

    el codigo es el siguiente: 

    NOTA: En perl el signo # significa que lo siguiente es un comentario (excepto en la primera linea)

    ______________________________________________

    #!/usr/bin/perl
    use Device::SerialPort;
    use strict;
    
    my $serial = Device::SerialPort->new("/dev/ttyUSB0");
    $serial->baudrate(9600);
    $serial->databits(8);
    $serial->stopbits(1);
    $serial->parity('none');
    $serial->handshake('none');
    $serial->read_const_time(100);
    
    my $recv;
    my $codigo;
    			$serial->write("\e@");
    			$serial->write("\x1B\x0C");
    			$serial->write("\x1D\x57\x1E\x1E");
    			$serial->write("\n\n\n");
    			$serial->write("\n *****");
    			$serial->write("\x1B\x61\x0");#centrado x2=derecho,x1=centrado x0=izquierda
    			$serial->write("\x1D\x21\x3");#aumenta el tamaño dela letra
    			$serial->write("\x09"); #mueve hacia el siguiente tab
    
    
    			$serial->write("\x1B\x2D\x2 COBRADO");#underline
    			$serial->write("\x09"); #mueve hacia el siguiente tab			
    			$serial->write("\x1B\x2D\x0");	#fin de underline		
    			$serial->write("\x1D\x21\x0"); #fin del tamaño de letra aumentada			
    			#$serial->write("\x1B\x32");#un espacio
    			$serial->write(" ***** \n");
    
    			#pdf-417
    			$serial->write("\x1C\x45\x1\x2C\x1\x13");
    			$serial->write("9992245239083");
    			$serial->write("\x00");			
    
    			$serial->write("\n");			
    			#pdf-417
    			#$serial->write("\x1C\x48\x02");
    			#$serial->write("999224832");			
    			#$serial->write("\x00");
    
    			$serial->write("\n");
    			#codigo de barra
    			$serial->write("\x1D\x6B\x02");
    			$serial->write("9992245239083");			
    			$serial->write("\x00");
    			
    			#intento hacer un recuadro
    			$serial->write("\x1D\x28\x4D\x20\x50\x40\x50");
    		
    		print "OK\n";
    
    	    	$serial->write("\n\n\n\n\n\n");
    
    
    		getc;
    
    		$estado = 0;
    exit();

    Como pueden ver lo estoy conectado desde el puerto USB a un serial, y la comunicación no tiene problemas ya que logro imprimir, el código de barras que intento hacer también funciona impecable, pero el PDF417 no resulta ya que me imagino que falta algo.

    Si me pudieran explicar como realizar un recuadro (un frame) se los agradecería también. 

    Espero su ayuda chicos, muchas gracias. 


    miércoles, 10 de abril de 2013 13:09

Todas las respuestas

  • Estimados estoy un poco complicado y necesito de su ayuda para realizar una impresión de un PDF417 usando ESC/POS.

    Estoy trabajando en un equipo móvil con linux y manejado con  lenguaje PERL, en el cual he conectado una pequeña impresora. A esta le envío algunos comandos de impresión los cuales me reconoce unos y otros simplemente no. Obviamente hay un tema de que mi experiencia en esto es de apenas 2 días y es muy problable que algo esté haciendo mal y no me halla dado cuenta. Es por eso que pongo aquí el codigo que estoy usando para que me ayuden a saber que es lo que estoy haciendo mal y si me pueden ayudar a imprimir el pdf417.

    el codigo es el siguiente: 

    NOTA: En perl el signo # significa que lo siguiente es un comentario (excepto en la primera linea)

    ______________________________________________

    #!/usr/bin/perl
    use Device::SerialPort;
    use strict;
    
    my $serial = Device::SerialPort->new("/dev/ttyUSB0");
    $serial->baudrate(9600);
    $serial->databits(8);
    $serial->stopbits(1);
    $serial->parity('none');
    $serial->handshake('none');
    $serial->read_const_time(100);
    
    my $recv;
    my $codigo;
    			$serial->write("\e@");
    			$serial->write("\x1B\x0C");
    			$serial->write("\x1D\x57\x1E\x1E");
    			$serial->write("\n\n\n");
    			$serial->write("\n *****");
    			$serial->write("\x1B\x61\x0");#centrado x2=derecho,x1=centrado x0=izquierda
    			$serial->write("\x1D\x21\x3");#aumenta el tamaño dela letra
    			$serial->write("\x09"); #mueve hacia el siguiente tab
    
    
    			$serial->write("\x1B\x2D\x2 COBRADO");#underline
    			$serial->write("\x09"); #mueve hacia el siguiente tab			
    			$serial->write("\x1B\x2D\x0");	#fin de underline		
    			$serial->write("\x1D\x21\x0"); #fin del tamaño de letra aumentada			
    			#$serial->write("\x1B\x32");#un espacio
    			$serial->write(" ***** \n");
    
    			#pdf-417
    			$serial->write("\x1C\x45\x1\x2C\x1\x13");
    			$serial->write("9992245239083");
    			$serial->write("\x00");			
    
    			$serial->write("\n");			
    			#pdf-417
    			#$serial->write("\x1C\x48\x02");
    			#$serial->write("999224832");			
    			#$serial->write("\x00");
    
    			$serial->write("\n");
    			#codigo de barra
    			$serial->write("\x1D\x6B\x02");
    			$serial->write("9992245239083");			
    			$serial->write("\x00");
    			
    			#intento hacer un recuadro
    			$serial->write("\x1D\x28\x4D\x20\x50\x40\x50");
    		
    		print "OK\n";
    
    	    	$serial->write("\n\n\n\n\n\n");
    
    
    		getc;
    
    		$estado = 0;
    exit();

    Como pueden ver lo estoy conectado desde el puerto USB a un serial, y la comunicación no tiene problemas ya que logro imprimir, el código de barras que intento hacer también funciona impecable, pero el PDF417 no resulta ya que me imagino que falta algo.

    Si me pudieran explicar como realizar un recuadro (un frame) se los agradecería también. 

    Espero su ayuda chicos, muchas gracias. 


    Lograste imprimir, te agradecería que compartas el código que estoy truncado en esto.
    jueves, 23 de noviembre de 2017 23:27