ProHoster > Blog > administracja > Konfigurowanie drukarki etykiet XPrinter w systemie Linux na stacji roboczej VMware
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.
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
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>
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)
Są 2 opcje, które udało mi się skonfigurować, poprzez protokół LPD i przez sambę.
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.
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
Wybierz sterownik 4BARCODE => 4B-3064TA
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.
Próbujemy wydrukować stronę testową - gotowe!
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:
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