Configurazione di una stampante di etichette XPrinter in Linux in VMware Workstation

Un esempiu per a stallazione in CentOS senza una cunchiglia grafica; per analogia, pudete installà in qualsiasi OS Linux.

Risolviu un prublema specificu: aghju bisognu di stampà etichette cù testu arbitrariu cù un mudellu da PHP. Siccomu ùn pudete micca cuntà una cunnessione Internet stabile à l'avvenimentu, è a maiò parte di i travaglii di l'automatizazione si sovrapponenu cù u situ web, avemu decisu di travaglià cù una macchina virtuale in VMware.

XPrinter hè ancu adattatu per i travaglii di marcatura; l'installazione sottu Windows hè assai più faciule. Aghju stabilitu nantu à u mudellu XP-460B cù una larghezza di l'etichetta finu à 108 mm.

Configurazione di una stampante di etichette XPrinter in Linux in VMware Workstation

Siccomu raramente aghju stallatu Linux è cunnetta i dispositi à questu, aghju cercatu manuali di installazione pronti è aghju realizatu chì u modu più faciule per cunnette una stampante hè attraversu tazze. Ùn pudia micca cunnette l'impresora via USB, nisuna manipulazione chì seguite i cunsiglii in i manuali aiutava, aghju ghjustu a macchina virtuale parechje volte.

  • Scaricate i driver da u situ web di u fabricatore xprintertech.com, venenu in un archiviu per Windows, Mac è Linux

    I cunduttori sò publicati in u situ web per una seria di dispusitivi, in u mo casu Driver di stampante di etichette da 4 pollici. Comu risulta, l'XP-460B hè digià statu discontinuatu; Aghju capitu à quale serie appartene basatu nantu à i breadcrumbs di un mudellu simili, u XP-470B.

  • Installa a stampante in Windows, attivate a spartera

    Configurazione di una stampante di etichette XPrinter in Linux in VMware Workstation

  • Per Linux, l'archiviu cuntene 1 file 4BARCODE. Questu hè un schedariu "2 in 1", un script bash cù un archiviu tar chì si sbulicà è copia i drivers in cups. In u mo casu, bzip2 hè necessariu per unpacking (per a serie 80 mm hè utilizatu un archiver differente)
    yum install cups
    yum install bzip2
    chmod 744 ./4BARCODE
    sh ./4BARCODE
    service cups start
    
  • Dopu avete bisognu di apre localhost: 631 in u navigatore, per comodità aghju fattu un paràmetru per apre da u navigatore in 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>
    

    Aghjunghjite u portu 631 à u firewall (o iptables):

    firewall-cmd --zone=public --add-port=631/tcp --permanent
    firewall-cmd --reload
    
  • Avemu apertu u ligame in u navigatore cù l'IP di a macchina virtuale, in u mo casu 192.168.1.5: 631/admin

    Aghjunghjite una stampante (avete bisognu di inserisce root è password)

    Configurazione di una stampante di etichette XPrinter in Linux in VMware Workstation

  • Ci sò 2 opzioni chì aghju sappiutu cunfigurà, via u protocolu LPD è via samba.
    1. Per cunnette via u protocolu LPD, avete bisognu di attivà u serviziu in Windows (Attiva o disattiva i cumpunenti di Windows) è riavvia l'urdinatore.

      Configurazione di una stampante di etichette XPrinter in Linux in VMware Workstation
      In i paràmetri di cups, inserite lpd://192.168.1.52/Xprinter_XP-460B, induve 192.168.1.52 hè l'IP di l'urdinatore nantu à quale a stampante hè stallata, Xprinter_XP-460B hè u nome di a stampante in i paràmetri di spartera di Windows.

      Configurazione di una stampante di etichette XPrinter in Linux in VMware Workstation
      Selezziunà u driver 4BARCODE => 4B-3064TA

      Configurazione di una stampante di etichette XPrinter in Linux in VMware Workstation
      Ùn avemu micca selezziunate o salvate nunda in i paràmetri! Aghju pruvatu à aghjustà a dimensione di l'etichetta, ma allora a stampante ùn funziona micca per una certa ragione. A dimensione di l'etichetta pò esse specificata in u travagliu di stampa.

      Configurazione di una stampante di etichette XPrinter in Linux in VMware Workstation
      Pruvemu di stampà una pagina di prova - finitu!

    2. Siconda opzione. Avete bisognu di installà samba, cuminciate, riavviate cups, allora un novu puntu di cunnessione apparirà in cups, in i paràmetri inserite una linea cum'è smb://user:[email prutettu]/Xprinter_XP-460B. Induve, l'utilizatore hè un utilizatore in Windows, l'utilizatore deve avè una password stabilita, l'autorizazione ùn funziona micca cun un viotu.

Quandu tuttu hà travagliatu è l'impresora hà stampatu una pagina di prova, i travaglii ponu esse mandati via a cunsola:

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

In questu esempiu, l'etichetta hà dimensioni di 100x100 mm, 2 mm sò stati scelti sperimentalmente. A distanza trà l'etichette hè di 3 mm, ma se mette l'altitudine à 103 mm, a cinta si cambia, facendu inconveniente per strappare l'etichetta. U svantaghju di u protokollu LPD hè chì i travaglii sò mandati cum'è una stampante regulare, u formatu ESC / P0S ùn hè micca mandatu per stampà, è u sensoru ùn calibre micca l'etichette.

Allora pudete travaglià cù l'impresora via php. Ci sò biblioteche per travaglià cù cups, hè più faciule per mè per mandà un cumandamentu à a cunsola via exec ();

Siccomu ESC / P0S ùn funziona micca, aghju decisu di fà mudelli in pdf usendu a 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');

Configurazione di una stampante di etichette XPrinter in Linux in VMware Workstation
Pronti. Aghju passatu 2 week-end à stallà, spergu chì questu serà utile à qualchissia.

Source: www.habr.com

Add a comment