Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/04/2013, 07:56
benjaconce
 
Fecha de Ingreso: abril-2013
Mensajes: 1
Antigüedad: 11 años, 10 meses
Puntos: 0
Imprimir PDF417 con ESC/POS

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)

______________________________________________

Código PHP:
#!/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.