Um exemplo para configurar no CentOS sem um shell gráfico; por analogia, vocĂŞ pode configurar em qualquer sistema operacional Linux.Eu resolvo um problema especĂfico, do php vocĂŞ precisa imprimir etiquetas com texto arbitrário de acordo com o modelo. Como Ă© impossĂvel contar com uma Internet estável no evento e a maioria das tarefas de automação cruzam com o site, decidimos trabalhar com a máquina virtual no VMware.O XPrinter tambĂ©m Ă© adequado para marcar tarefas; a instalação no Windows Ă© muito mais fácil. Ele parou no modelo XP-460B com uma largura de etiqueta de atĂ© 108 mm.Como raramente lido com a instalação do Linux e com a conexĂŁo de dispositivos, estava procurando manuais de configuração prontos, percebi que a maneira mais fácil de conectar a impressora atravĂ©s de xĂcaras. NĂŁo consegui conectar a impressora via USB, nenhuma manipulação nas dicas dos manuais ajudou, apenas quebrei a máquina virtual várias vezes.- Faça o download dos drivers no site do fabricante xprintertech.com, eles vĂŞm em um arquivo para Windows, Mac e Linux. Os
drivers estão localizados no site para uma série de dispositivos, no meu caso, drivers de impressora de etiquetas de 4 polegadas . Como se viu, o XP-460B já foi descontinuado, percebi a que série ele pertence nas migalhas de pão do modelo XP-470B semelhante. - Instale a impressora no Windows, habilite o compartilhamento
- Linux 1 4BARCODE. «2 1» , bash tar , cups. bzip2 ( 80 )
yum install cups
yum install bzip2
chmod 744 ./4BARCODE
sh ./4BARCODE
service cups start
- localhost:631 , , windows. /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>
631 firewall ( iptables):
firewall-cmd --zone=public --add-port=631/tcp --permanent
firewall-cmd --reload
- IP , 192.168.1.5:631/admin
( root )
- 2 , , LPD samba.
- LPD, windows ( Windows), .
cups lpd://192.168.1.52/Xprinter_XP-460B, 192.168.1.52 — IP , , Xprinter_XP-460B — windows
4BARCODE => 4B-3064TA
! , - . .
— ! - . samba, , cups, cups, smb://user:password@192.168.1.52/Xprinter_XP-460B. , user — windows, , .
Quando tudo acabou e a impressora imprimiu uma página de teste, as tarefas podem ser enviadas pelo console:lpr -P Xprinter_XP-460B -o media=Custom.100x102mm test.txt
Neste exemplo, o rótulo 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 será deslocada, será inconveniente rasgar a etiqueta. A desvantagem do protocolo LPD é que os trabalhos são enviados como uma impressora comum, o formato ESC / P0S não é enviado para a impressora, 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 o ESC / P0S não funciona, decidi criar modelos em pdf via biblioteca tFPDFrequire_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');
Feito. Eu matei 2 dias para configurar, espero que seja útil para alguém.