Configuración de una impresora de etiquetas XPrinter en Linux en VMware Workstation

Un ejemplo para configurar en CentOS sin un shell gráfico; por analogía, puede configurarlo en cualquier sistema operativo Linux.

Resuelvo un problema específico, desde php necesito imprimir etiquetas con texto arbitrario según una plantilla. Dado que el evento no puede depender de una Internet estable y la mayoría de las tareas de automatización se superponen con el sitio web, decidimos trabajar con una máquina virtual en VMware.

XPrinter también es adecuado para tareas de marcado, es mucho más fácil de instalar bajo Windows. Me decidí por el modelo XP-460B con un ancho de etiqueta de hasta 108 mm.

Configuración de una impresora de etiquetas XPrinter en Linux en VMware Workstation

Como rara vez configuro Linux y le conecto dispositivos, estaba buscando manuales de configuración listos para usar, me di cuenta de que la forma más fácil de conectar una impresora es a través de tazas. No pude conectar la impresora a través de USB, no me ayudaron las manipulaciones de los consejos en los manuales, solo rompí la máquina virtual varias veces.

  • Descargamos los controladores del sitio web del fabricante xprintertech.com, vienen en un archivo para Windows, Mac y Linux

    Los controladores se publican en el sitio para una serie de dispositivos, en mi caso Controladores de impresora de etiquetas de 4 pulgadas. Al final resultó que, el XP-460B ya se ha descontinuado, descubrí a qué serie pertenece en función de las migas de pan de un modelo XP-470B similar.

  • Instale la impresora en Windows, habilite el uso compartido

    Configuración de una impresora de etiquetas XPrinter en Linux en VMware Workstation

  • Para Linux, el archivo contiene 1 archivo 4BARCODE. Este es un archivo 2 en 1, un script bash con un archivo tar que se desempaqueta y copia los controladores en tazas. En mi caso, se necesita bzip2 para desempaquetar (para la serie de 80 mm, se usa un archivador diferente)
    yum install cups
    yum install bzip2
    chmod 744 ./4BARCODE
    sh ./4BARCODE
    service cups start
    
  • A continuación, debe abrir localhost:631 en el navegador, por conveniencia hago la configuración para abrir desde el navegador en Windows. Edite /etc/cups/cupsd.conf:
    Listen localhost:631 меняем на Listen *:631
    <Location />
      Order allow,deny
      Allow localhost
      Allow 192.168.1.*  
    </Location>
    <Location /admin>
      Order allow,deny
      Allow localhost
      Allow 192.168.1.*
    </Location>
    

    Agregue el puerto 631 al firewall (o iptables):

    firewall-cmd --zone=public --add-port=631/tcp --permanent
    firewall-cmd --reload
    
  • Abrimos el enlace en el navegador por la IP de la máquina virtual, en mi caso 192.168.1.5:631/administrador

    Agregue una impresora (debe ingresar la raíz y la contraseña)

    Configuración de una impresora de etiquetas XPrinter en Linux en VMware Workstation

  • Hay 2 opciones que logré configurar, a través del protocolo LPD y a través de samba.
    1. Para conectarse a través del protocolo LPD, debe habilitar el servicio en Windows (Activar o desactivar las características de Windows), reiniciar la computadora.

      Configuración de una impresora de etiquetas XPrinter en Linux en VMware Workstation
      En la configuración de tazas, ingrese lpd://192.168.1.52/Xprinter_XP-460B, donde 192.168.1.52 es la IP de la computadora en la que está instalada la impresora, Xprinter_XP-460B es el nombre de la impresora en la configuración de uso compartido de Windows

      Configuración de una impresora de etiquetas XPrinter en Linux en VMware Workstation
      Seleccionar controlador 4CÓDIGO DE BARRAS => 4B-3064TA

      Configuración de una impresora de etiquetas XPrinter en Linux en VMware Workstation
      ¡No seleccionamos nada en los parámetros y no guardamos! Intenté ajustar el tamaño de la etiqueta, pero la impresora no funciona por alguna razón. El tamaño de la etiqueta se puede configurar en el trabajo de impresión.

      Configuración de una impresora de etiquetas XPrinter en Linux en VMware Workstation
      Intentando imprimir una página de prueba, ¡hecho!

    2. Segunda opción. Debe instalar samba, iniciar, reiniciar cups, luego aparecerá un nuevo punto de conexión en cups, en la configuración ingrese una línea como smb: // usuario:[email protected]/Xprinter_XP-460B. Cuando el usuario es un usuario en Windows, el usuario debe tener una contraseña, la autorización no pasa con una vacía.

Cuando todo salió bien y la impresora imprimió una página de prueba, los trabajos se pueden enviar a través de la consola:

lpr -P Xprinter_XP-460B -o media=Custom.100x102mm test.txt

En este ejemplo, la etiqueta tiene unas dimensiones de 100x100 mm, se seleccionan 2 mm experimentalmente. La distancia entre las etiquetas es de 3 mm, pero si establece la altura en 103 mm, la cinta se desplaza, es un inconveniente arrancar la etiqueta. La desventaja del protocolo LPD es que los trabajos se envían como a una impresora normal, el formato ESC/P0S no se envía a imprimir, el sensor no calibra las etiquetas.

Luego puede trabajar con la impresora a través de php. Hay bibliotecas para trabajar con tazas, es más fácil para mí enviar un comando a la consola a través de exec();

Como ESC/P0S no funciona, decidí hacer plantillas en pdf a través de la biblioteca tFPDF

require_once($_SERVER["DOCUMENT_ROOT"] . "/tfpdf/tfpdf.php");
$w = 100;
$h = 100;
$number = 59;
$pdf = new tFPDF('P', 'mm', [$w, $h]);
$pdf->SetTitle('Information');
$pdf->AddFont('Font', 'B', $_SERVER["DOCUMENT_ROOT"] . '/fonts/opensans-bold.ttf', true);
$pdf->SetTextColor(0,0,0);
$pdf->SetDrawColor(0,0,0);

$pdf->AddPage('P');
$pdf->SetDisplayMode('real','default');
$pdf->Image($_SERVER["DOCUMENT_ROOT"]. '/images/logo_site.png',$w - 4 - 28,$h - 13,28.1,9.6,'');

$pdf->SetFontSize(140);
$pdf->SetXY(0,24);
$pdf->Cell($w,$h - 45, $number,0,0,'C',0);

$pdf->SetFontSize(1);
$pdf->SetTextColor(255,255,255);
$pdf->Write(0, $number);

$pdf->Output('example.pdf','I');

exec('php label.php | lpr -P Xprinter_XP-460B -o media=Custom.100x102mm');

Configuración de una impresora de etiquetas XPrinter en Linux en VMware Workstation
Listo. Maté 2 días de descanso para configurar, espero que sea útil para alguien.

Fuente: habr.com

Añadir un comentario