Konfigurowanie drukarki etykiet XPrinter w systemie Linux na stacji roboczej VMware

Przykład konfiguracji na CentOS bez powłoki graficznej; analogicznie możesz skonfigurować na dowolnym systemie operacyjnym Linux.

Rozwiązuję konkretny problem: muszę wydrukować etykiety z dowolnym tekstem, korzystając z szablonu z PHP. Ponieważ na wydarzeniu nie można liczyć na stabilne łącze internetowe, a większość zadań automatyzacji pokrywa się z pracą strony internetowej, zdecydowaliśmy się na pracę z maszyną wirtualną na VMware.

XPrinter nadaje się również do zaznaczania zadań, instalacja pod Windows jest znacznie łatwiejsza. Zdecydowałem się na model XP-460B z szerokością etykiety do 108 mm.

Konfigurowanie drukarki etykiet XPrinter w systemie Linux na stacji roboczej VMware

Ponieważ rzadko konfiguruję Linuksa i podłączam do niego urządzenia, poszukałem gotowych instrukcji konfiguracji i zdałem sobie sprawę, że najłatwiejszym sposobem podłączenia drukarki są za pomocą kubków. Nie mogłem podłączyć drukarki przez USB, żadne manipulacje zgodnie z radami z instrukcji nie pomogły, po prostu kilka razy zawiesiłem maszynę wirtualną.

  • Pobierz sterowniki ze strony producenta xprintertech.com, znajdują się one w jednym archiwum dla systemów Windows, Mac i Linux

    W moim przypadku sterowniki są zamieszczone na stronie internetowej dla serii urządzeń Sterowniki do 4-calowych drukarek etykiet. Jak się okazuje, XP-460B został już wycofany z produkcji, do jakiej serii należy, zorientowałem się na podstawie podobnego modelu, XP-470B.

  • Zainstaluj drukarkę w systemie Windows, włącz udostępnianie

    Konfigurowanie drukarki etykiet XPrinter w systemie Linux na stacji roboczej VMware

  • Dla systemu Linux archiwum zawiera 1 plik 4BARCODE. Jest to plik „2 w 1”, czyli skrypt bashowy z archiwum tar, które samo się rozpakowuje i kopiuje sterowniki do kubków. W moim przypadku do rozpakowania potrzebny jest bzip2 (dla serii 80 mm używany jest inny archiwizator)
    yum install cups
    yum install bzip2
    chmod 744 ./4BARCODE
    sh ./4BARCODE
    service cups start
    
  • Następnie musisz otworzyć localhost:631 w przeglądarce, dla wygody ustawiam otwieranie z przeglądarki w systemie Windows. Edytuj plik /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>
    

    Dodaj port 631 do zapory (lub iptables):

    firewall-cmd --zone=public --add-port=631/tcp --permanent
    firewall-cmd --reload
    
  • Link otwieramy w przeglądarce korzystając w moim przypadku z adresu IP maszyny wirtualnej 192.168.1.5:631/admin

    Dodaj drukarkę (musisz podać root i hasło)

    Konfigurowanie drukarki etykiet XPrinter w systemie Linux na stacji roboczej VMware

  • Są 2 opcje, które udało mi się skonfigurować, poprzez protokół LPD i przez sambę.
    1. Aby połączyć się poprzez protokół LPD należy włączyć usługę w systemie Windows (Włącz lub wyłącz składniki systemu Windows) i ponownie uruchomić komputer.

      Konfigurowanie drukarki etykiet XPrinter w systemie Linux na stacji roboczej VMware
      W ustawieniach kubków wpisz lpd://192.168.1.52/Xprinter_XP-460B, gdzie 192.168.1.52 to IP komputera na którym zainstalowana jest drukarka, Xprinter_XP-460B to nazwa drukarki w ustawieniach udostępniania systemu Windows

      Konfigurowanie drukarki etykiet XPrinter w systemie Linux na stacji roboczej VMware
      Wybierz sterownik 4BARCODE => 4B-3064TA

      Konfigurowanie drukarki etykiet XPrinter w systemie Linux na stacji roboczej VMware
      Nie wybieramy i nie zapisujemy niczego w parametrach! Próbowałem dostosować rozmiar etykiety, ale drukarka z jakiegoś powodu nie działa. Rozmiar etykiety można określić w zleceniu drukowania.

      Konfigurowanie drukarki etykiet XPrinter w systemie Linux na stacji roboczej VMware
      Próbujemy wydrukować stronę testową - gotowe!

    2. Druga opcja. Trzeba zainstalować Sambę, uruchomić, zrestartować Cups, wtedy w Cups pojawi się nowy punkt połączenia, w ustawieniach wpisz taką linijkę jak smb://user:[email chroniony]/Xprinter_XP-460B. Jeżeli użytkownik jest użytkownikiem systemu Windows, użytkownik musi mieć ustawione hasło, autoryzacja nie działa, jeśli hasło jest puste.

Kiedy wszystko się udało i drukarka wydrukowała stronę testową, zadania można wysyłać za pośrednictwem konsoli:

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

W tym przykładzie etykieta ma wymiary 100x100 mm, eksperymentalnie wybrano 2 mm. Odległość pomiędzy etykietami wynosi 3 mm, jednak przy ustawieniu wysokości na 103 mm taśma przesuwa się, co utrudnia odrywanie etykiety. Wadą protokołu LPD jest to, że zadania wysyłane są jak do zwykłej drukarki, format ESC/P0S nie jest wysyłany do druku, a czujnik nie kalibruje etykiet.

Następnie możesz pracować z drukarką za pośrednictwem php. Są biblioteki do pracy z kubkami, łatwiej mi wysłać polecenie na konsolę poprzez exec();

Ponieważ ESC/P0S nie działa, zdecydowałem się stworzyć szablony w formacie PDF, korzystając z biblioteki 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');

Konfigurowanie drukarki etykiet XPrinter w systemie Linux na stacji roboczej VMware
Gotowy. Poświęciłem 2 weekendy na konfigurowanie tego, mam nadzieję, że komuś się to przyda.

Źródło: www.habr.com

Dodaj komentarz