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

Un esempio di configurazione su CentOS senza shell grafica; per analogia, è possibile configurare su qualsiasi sistema operativo Linux.

Sto risolvendo un problema specifico: devo stampare etichette con testo arbitrario utilizzando un modello PHP. Poiché durante l'evento non si può contare su una connessione Internet stabile e la maggior parte delle attività di automazione si sovrappongono al sito Web, abbiamo deciso di lavorare con una macchina virtuale su VMware.

XPrinter è adatto anche per contrassegnare attività, l'installazione sotto Windows è molto più semplice. Ho optato per il modello XP-460B con una larghezza dell'etichetta fino a 108 mm.

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

Dato che raramente configuro Linux e collego dispositivi ad esso, ho cercato manuali di configurazione già pronti e ho capito che il modo più semplice per collegare una stampante è tramite cups. Non sono riuscito a collegare la stampante tramite USB, nessuna manipolazione seguendo i consigli nei manuali ha aiutato, ho semplicemente bloccato più volte la macchina virtuale.

  • Scarica i driver dal sito Web del produttore xprintertech.com, sono disponibili in un archivio per Windows, Mac e Linux

    Nel mio caso, sul sito Web sono pubblicati i driver per una serie di dispositivi Driver per stampante per etichette da 4 pollici. A quanto pare, l'XP-460B è già fuori produzione; ho capito a quale serie appartiene basandomi sulle briciole di pane di un modello simile, l'XP-470B.

  • Installa la stampante in Windows, abilita la condivisione

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

  • Per Linux, l'archivio contiene 1 file 4BARCODE. Questo è un file “2 in 1”, uno script bash con un archivio tar che si decomprime e copia i driver in cups. Nel mio caso, per disimballare è necessario bzip2 (per la serie 80 mm viene utilizzato un archiviatore diverso)
    yum install cups
    yum install bzip2
    chmod 744 ./4BARCODE
    sh ./4BARCODE
    service cups start
    
  • Successivamente è necessario aprire localhost:631 nel browser, per comodità scelgo l'impostazione per l'apertura dal browser in Windows. Modifica /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>
    

    Aggiungi la porta 631 al firewall (o iptables):

    firewall-cmd --zone=public --add-port=631/tcp --permanent
    firewall-cmd --reload
    
  • Apriamo il collegamento nel browser utilizzando l'IP della macchina virtuale, nel mio caso 192.168.1.5:631/admin

    Aggiungi una stampante (è necessario inserire root e password)

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

  • Ci sono 2 opzioni che sono riuscito a configurare, tramite il protocollo LPD e tramite samba.
    1. Per connettersi tramite il protocollo LPD, è necessario abilitare il servizio in Windows (Attiva o disattiva i componenti di Windows) e riavviare il computer.

      Configurazione di una stampante per etichette XPrinter su Linux in VMware Workstation
      Nelle impostazioni di cups, inserisci lpd://192.168.1.52/Xprinter_XP-460B, dove 192.168.1.52 è l'IP del computer su cui è installata la stampante, Xprinter_XP-460B è il nome della stampante nelle impostazioni di condivisione di Windows

      Configurazione di una stampante per etichette XPrinter su Linux in VMware Workstation
      Selezionare il driver 4BARCODE => 4B-3064TA

      Configurazione di una stampante per etichette XPrinter su Linux in VMware Workstation
      Non selezioniamo né salviamo nulla nei parametri! Ho provato a regolare le dimensioni dell'etichetta, ma per qualche motivo la stampante non funziona. La dimensione dell'etichetta può essere specificata nel lavoro di stampa.

      Configurazione di una stampante per etichette XPrinter su Linux in VMware Workstation
      Proviamo a stampare una pagina di prova: fatto!

    2. Seconda opzione. Devi installare samba, avviare, riavviare cups, quindi apparirà un nuovo punto di connessione in cups, nelle impostazioni inserisci una riga come smb://user:[email protected]/Xprinter_XP-460B. Laddove l'utente è un utente Windows, l'utente deve avere una password impostata, l'autorizzazione non funziona con una password vuota.

Quando tutto ha funzionato e la stampante ha stampato una pagina di prova, i lavori possono essere inviati tramite la console:

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

In questo esempio l'etichetta ha dimensioni di 100x100 mm, sperimentalmente sono stati selezionati 2 mm. La distanza tra le etichette è di 3 mm, ma se si imposta l'altezza su 103 mm, il nastro si sposta, rendendo scomodo strappare l'etichetta. Lo svantaggio del protocollo LPD è che i lavori vengono inviati come a una normale stampante, il formato ESC/P0S non viene inviato per la stampa e il sensore non calibra le etichette.

Quindi puoi lavorare con la stampante tramite php. Esistono librerie per lavorare con cups, per me è più semplice inviare un comando alla console tramite exec();

Poiché ESC/P0S non funziona, ho deciso di creare modelli in pdf utilizzando la libreria 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 per etichette XPrinter su Linux in VMware Workstation
Pronto. Ho trascorso 2 fine settimana a configurarlo, spero che possa essere utile a qualcuno.

Fonte: habr.com

Aggiungi un commento