Διαμόρφωση ενός εκτυπωτή ετικετών XPrinter σε Linux στο σταθμό εργασίας VMware

Ένα παράδειγμα για εγκατάσταση στο CentOS χωρίς γραφικό κέλυφος· κατ' αναλογία, μπορείτε να το ρυθμίσετε σε οποιοδήποτε λειτουργικό σύστημα Linux.

Λύνω ένα συγκεκριμένο πρόβλημα, από το php πρέπει να εκτυπώσω ετικέτες με αυθαίρετο κείμενο σύμφωνα με ένα πρότυπο. Δεδομένου ότι το συμβάν δεν μπορεί να βασίζεται σε ένα σταθερό Διαδίκτυο και οι περισσότερες από τις εργασίες αυτοματισμού επικαλύπτονται με τον ιστότοπο, αποφασίσαμε να εργαστούμε με μια εικονική μηχανή στο VMware.

Ο XPrinter είναι επίσης κατάλληλος για τη σήμανση εργασιών, είναι πολύ πιο εύκολο να εγκατασταθεί κάτω από τα παράθυρα. Ακολούθησα το μοντέλο XP-460B με πλάτος ετικέτας έως 108 mm.

Διαμόρφωση ενός εκτυπωτή ετικετών XPrinter σε Linux στο σταθμό εργασίας VMware

Δεδομένου ότι σπάνια εγκατέστησα το Linux και συνδέω συσκευές σε αυτό, έψαχνα για έτοιμα εγχειρίδια εγκατάστασης, συνειδητοποίησα ότι ο ευκολότερος τρόπος σύνδεσης εκτυπωτή είναι μέσω κύπελλων. Δεν μπορούσα να συνδέσω τον εκτυπωτή μέσω USB, κανένας χειρισμός σύμφωνα με τις συμβουλές στα εγχειρίδια δεν βοήθησε, απλώς έσπασα την εικονική μηχανή αρκετές φορές.

  • Κάνουμε λήψη των προγραμμάτων οδήγησης από τον ιστότοπο του κατασκευαστή xprintertech.com, έρχονται σε ένα αρχείο για Windows, Mac και Linux

    Προγράμματα οδήγησης είναι αναρτημένα στον ιστότοπο για μια σειρά συσκευών, στην περίπτωσή μου Προγράμματα οδήγησης εκτυπωτή ετικετών 4 ιντσών. Όπως αποδείχτηκε, το XP-460B έχει ήδη διακοπεί, κατάλαβα σε ποια σειρά ανήκει με βάση τη φρυγανιά ενός παρόμοιου μοντέλου XP-470B.

  • Εγκαταστήστε τον εκτυπωτή στα Windows, ενεργοποιήστε την κοινή χρήση

    Διαμόρφωση ενός εκτυπωτή ετικετών XPrinter σε Linux στο σταθμό εργασίας VMware

  • Για Linux, το αρχείο περιέχει 1 αρχείο 4BARCODE. Αυτό είναι ένα αρχείο 2 σε 1, ένα σενάριο bash με αρχείο tar που αποσυσκευάζεται και αντιγράφει τα προγράμματα οδήγησης σε κύπελλα. Στην περίπτωσή μου, το bzip2 χρειάζεται για την αποσυσκευασία (για τη σειρά 80 mm, χρησιμοποιείται διαφορετικός αρχειοθέτης)
    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 στο τείχος προστασίας (ή iptables):

    firewall-cmd --zone=public --add-port=631/tcp --permanent
    firewall-cmd --reload
    
  • Ανοίγουμε τον σύνδεσμο στο πρόγραμμα περιήγησης από την IP της εικονικής μηχανής, στην περίπτωσή μου 192.168.1.5:631/διαχειρ

    Προσθήκη εκτυπωτή (πρέπει να εισαγάγετε root και κωδικό πρόσβασης)

    Διαμόρφωση ενός εκτυπωτή ετικετών XPrinter σε Linux στο σταθμό εργασίας VMware

  • Υπάρχουν 2 επιλογές που κατάφερα να ρυθμίσω, μέσω του πρωτοκόλλου LPD και μέσω της samba.
    1. Για να συνδεθείτε μέσω του πρωτοκόλλου LPD, πρέπει να ενεργοποιήσετε την υπηρεσία στα Windows (Ενεργοποίηση ή απενεργοποίηση των δυνατοτήτων των Windows), επανεκκίνηση του υπολογιστή.

      Διαμόρφωση ενός εκτυπωτή ετικετών XPrinter σε Linux στο σταθμό εργασίας VMware
      Στις ρυθμίσεις cups, πληκτρολογήστε lpd://192.168.1.52/Xprinter_XP-460B, όπου 192.168.1.52 είναι η IP του υπολογιστή στον οποίο είναι εγκατεστημένος ο εκτυπωτής, Xprinter_XP-460B είναι το όνομα του εκτυπωτή στις ρυθμίσεις κοινής χρήσης των Windows

      Διαμόρφωση ενός εκτυπωτή ετικετών XPrinter σε Linux στο σταθμό εργασίας VMware
      Επιλέξτε πρόγραμμα οδήγησης 4BARCODE => 4B-3064TA

      Διαμόρφωση ενός εκτυπωτή ετικετών XPrinter σε Linux στο σταθμό εργασίας VMware
      Δεν επιλέγουμε τίποτα στις παραμέτρους και δεν αποθηκεύουμε! Προσπάθησα να προσαρμόσω το μέγεθος της ετικέτας, αλλά μετά ο εκτυπωτής δεν λειτουργεί για κάποιο λόγο. Το μέγεθος της ετικέτας μπορεί να οριστεί στην εργασία εκτύπωσης.

      Διαμόρφωση ενός εκτυπωτή ετικετών XPrinter σε Linux στο σταθμό εργασίας VMware
      Προσπαθώ να εκτυπώσω μια δοκιμαστική σελίδα - έγινε!

    2. Δεύτερη επιλογή. Πρέπει να εγκαταστήσετε τη samba, να ξεκινήσετε, να επανεκκινήσετε τα cups, στη συνέχεια θα εμφανιστεί ένα νέο σημείο σύνδεσης στα cups, στις ρυθμίσεις εισάγετε μια γραμμή όπως smb://user:[προστασία μέσω email]/Xprinter_XP-460B. Όπου, ο χρήστης είναι χρήστης στα windows, ο χρήστης πρέπει να έχει κωδικό πρόσβασης, η εξουσιοδότηση δεν περνά με κενό.

Όταν όλα λυθούν και ο εκτυπωτής εκτυπώσει μια δοκιμαστική σελίδα, οι εργασίες μπορούν να σταλούν μέσω της κονσόλας:

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

Σε αυτό το παράδειγμα, η ετικέτα έχει διαστάσεις 100x100 mm, τα 2 mm επιλέγονται πειραματικά. Η απόσταση μεταξύ των ετικετών είναι 3 mm, αλλά αν ρυθμίσετε το ύψος στα 103 mm, η ταινία μετατοπίζεται, δεν είναι βολικό να σκίσετε την ετικέτα. Το μειονέκτημα του πρωτοκόλλου LPD είναι ότι οι εργασίες αποστέλλονται σε έναν κανονικό εκτυπωτή, η μορφή ESC / P0S δεν αποστέλλεται για εκτύπωση, ο αισθητήρας δεν βαθμονομεί τις ετικέτες.

Στη συνέχεια, μπορείτε να εργαστείτε με τον εκτυπωτή μέσω php. Υπάρχουν βιβλιοθήκες για εργασία με cups, είναι πιο εύκολο για μένα να στείλω μια εντολή στην κονσόλα μέσω του exec();

Επειδή το ESC/P0S δεν λειτουργεί, αποφάσισα να φτιάξω πρότυπα σε pdf μέσω της βιβλιοθήκης 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');

Διαμόρφωση ενός εκτυπωτή ετικετών XPrinter σε Linux στο σταθμό εργασίας VMware
Ετοιμος. Σκότωσα 2 μέρες άδεια για να στήσω, ελπίζω να είναι χρήσιμο σε κάποιον.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο