ProHoster > Blog > administração > Configurando uma impressora de etiquetas XPrinter no Linux no VMware Workstation
Configurando uma impressora de etiquetas XPrinter no Linux no VMware Workstation
Um exemplo de configuração no CentOS sem um shell gráfico; por analogia, você pode configurá-lo em qualquer sistema operacional Linux.
Resolvo um problema específico, a partir do php preciso imprimir etiquetas com texto arbitrário de acordo com um template. Como o evento não pode contar com uma Internet estável e a maioria das tarefas de automação se sobrepõem ao site, decidimos trabalhar com uma máquina virtual no VMware.
XPrinter também é adequado para tarefas de marcação, é muito mais fácil de instalar no Windows. Optei pelo modelo XP-460B com uma largura de etiqueta de até 108 mm.
Como raramente configuro o Linux e conecto dispositivos a ele, estava procurando manuais de configuração prontos, percebi que a maneira mais fácil de conectar uma impressora é por meio de copos. Não consegui conectar a impressora via USB, nenhuma manipulação nos conselhos dos manuais ajudou, apenas quebrei a máquina virtual várias vezes.
Baixamos os drivers do site do fabricante xprintertech.com, eles vêm em um arquivo para Windows, Mac e Linux
Os drivers são postados no site para uma série de dispositivos, no meu caso Drivers de impressora de etiquetas de 4 polegadas. Acontece que o XP-460B já foi descontinuado, descobri a qual série ele pertence com base na migalha de pão de um modelo XP-470B semelhante.
Instale a impressora no Windows, habilite o compartilhamento
Para Linux, o arquivo contém 1 arquivo 4BARCODE. Este é um arquivo 2 em 1, um script bash com um arquivo tar que se descompacta e copia os drivers em cups. No meu caso, o bzip2 é necessário para descompactar (para a série de 80 mm, um arquivador diferente é usado)
yum install cups
yum install bzip2
chmod 744 ./4BARCODE
sh ./4BARCODE
service cups start
Em seguida, você precisa abrir localhost:631 no navegador, por conveniência faço a configuração para abrir do navegador no 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>
Abrimos o link no navegador pelo IP da máquina virtual, no meu caso 192.168.1.5:631/administrador
Adicione uma impressora (você precisa inserir root e senha)
São 2 opções que consegui configurar, via protocolo LPD e via samba.
Para se conectar através do protocolo LPD, você precisa habilitar o serviço no Windows (Ativar ou desativar recursos do Windows), reiniciar o computador.
Nas configurações do cups, digite lpd://192.168.1.52/Xprinter_XP-460B, onde 192.168.1.52 é o IP do computador no qual a impressora está instalada, Xprinter_XP-460B é o nome da impressora nas configurações de compartilhamento do Windows
Selecione o driver 4BARCODE => 4B-3064TA
Não selecionamos nada nos parâmetros e não salvamos! Tentei ajustar o tamanho da etiqueta, mas a impressora não funciona por algum motivo. O tamanho da etiqueta pode ser definido no trabalho de impressão.
Tentando imprimir uma página de teste - pronto!
Segunda opçao. Você precisa instalar o samba, iniciar, reiniciar o cups, então um novo ponto de conexão aparecerá no cups, nas configurações digite uma linha como smb://user:[email protegido]/Xprinter_XP-460B. Onde, usuário é um usuário no windows, o usuário deve ter uma senha, a autorização não passa com a vazia.
Quando tudo deu certo e a impressora imprimiu uma página de teste, os trabalhos podem ser enviados pelo console:
Neste exemplo, a etiqueta tem dimensões de 100x100 mm, 2 mm são selecionados experimentalmente. A distância entre as etiquetas é de 3 mm, mas se você definir a altura para 103 mm, a fita se desloca, é inconveniente arrancar a etiqueta. A desvantagem do protocolo LPD é que os trabalhos são enviados como para uma impressora comum, o formato ESC / P0S não é enviado para impressão, o sensor não calibra as etiquetas.
Então você pode trabalhar com a impressora através do php. Existem bibliotecas para trabalhar com cups, é mais fácil para mim enviar um comando para o console via exec();
Como ESC/P0S não funciona, resolvi fazer templates em pdf via biblioteca tFPDF