Konfigurieren eines XPrinter-Etikettendruckers unter Linux in VMware Workstation

Ein Beispiel für die Einrichtung in CentOS ohne grafische Shell; analog können Sie es auf jedem Linux-Betriebssystem einrichten.

Ich löse ein bestimmtes Problem: Von PHP aus muss ich Etiketten mit beliebigem Text gemäß einer Vorlage drucken. Da die Veranstaltung nicht auf ein stabiles Internet angewiesen ist und sich die meisten Automatisierungsaufgaben mit der Website überschneiden, haben wir uns für die Arbeit mit einer virtuellen Maschine auf VMware entschieden.

XPrinter eignet sich auch für Markierungsaufgaben, die Installation unter Windows ist deutlich einfacher. Ich habe mich für das Modell XP-460B mit einer Etikettenbreite von bis zu 108 mm entschieden.

Konfigurieren eines XPrinter-Etikettendruckers unter Linux in VMware Workstation

Da ich selten Linux einrichte und Geräte daran anschließe, suchte ich nach vorgefertigten Einrichtungshandbüchern und erkannte, dass sich ein Drucker am einfachsten über Tassen anschließen lässt. Ich konnte den Drucker nicht über USB anschließen, keine Manipulationen an den Ratschlägen in den Handbüchern haben geholfen, ich habe nur mehrmals die virtuelle Maschine kaputt gemacht.

  • Wir laden die Treiber von der Website des Herstellers xprintertech.com herunter, sie kommen in einem Archiv für Windows, Mac und Linux

    In meinem Fall werden auf der Website Treiber für eine Reihe von Geräten veröffentlicht Treiber für 4-Zoll-Etikettendrucker. Wie sich herausstellte, wurde der XP-460B bereits eingestellt. Ich habe anhand der Brotkrumen eines ähnlichen XP-470B-Modells herausgefunden, zu welcher Serie er gehört.

  • Installieren Sie den Drucker in Windows und aktivieren Sie die Freigabe

    Konfigurieren eines XPrinter-Etikettendruckers unter Linux in VMware Workstation

  • Für Linux enthält das Archiv 1 Datei 4BARCODE. Dies ist eine 2-in-1-Datei, ein Bash-Skript mit einem TAR-Archiv, das sich selbst entpackt und die Treiber in Cups kopiert. In meinem Fall wird bzip2 zum Entpacken benötigt (für die 80-mm-Serie wird ein anderer Archiver verwendet)
    yum install cups
    yum install bzip2
    chmod 744 ./4BARCODE
    sh ./4BARCODE
    service cups start
    
  • Als nächstes müssen Sie öffnen localhost:631 im Browser, der Einfachheit halber stelle ich das Öffnen über den Browser in Windows ein. Bearbeiten Sie /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>
    

    Fügen Sie Port 631 zur Firewall (oder zu iptables) hinzu:

    firewall-cmd --zone=public --add-port=631/tcp --permanent
    firewall-cmd --reload
    
  • Wir öffnen den Link im Browser über die IP der virtuellen Maschine, in meinem Fall 192.168.1.5:631/admin

    Fügen Sie einen Drucker hinzu (Sie müssen Root und Passwort eingeben)

    Konfigurieren eines XPrinter-Etikettendruckers unter Linux in VMware Workstation

  • Es gibt zwei Optionen, die ich konfigurieren konnte, über das LPD-Protokoll und über Samba.
    1. Um eine Verbindung über das LPD-Protokoll herzustellen, müssen Sie den Dienst in Windows aktivieren (Windows-Funktionen aktivieren oder deaktivieren) und den Computer neu starten.

      Konfigurieren eines XPrinter-Etikettendruckers unter Linux in VMware Workstation
      Geben Sie in den Cup-Einstellungen lpd://192.168.1.52/Xprinter_XP-460B ein, wobei 192.168.1.52 die IP des Computers ist, auf dem der Drucker installiert ist, Xprinter_XP-460B der Name des Druckers in den Windows-Freigabeeinstellungen

      Konfigurieren eines XPrinter-Etikettendruckers unter Linux in VMware Workstation
      Wählen Sie den Treiber 4BARCODE => 4B-3064TA

      Konfigurieren eines XPrinter-Etikettendruckers unter Linux in VMware Workstation
      Wir wählen nichts in den Parametern aus und speichern nicht! Ich habe versucht, die Etikettengröße anzupassen, aber dann funktioniert der Drucker aus irgendeinem Grund nicht. Die Etikettengröße kann im Druckauftrag eingestellt werden.

      Konfigurieren eines XPrinter-Etikettendruckers unter Linux in VMware Workstation
      Versuche eine Testseite zu drucken – fertig!

    2. Zweite Option. Sie müssen Samba installieren, starten, Cups neu starten, dann erscheint ein neuer Verbindungspunkt in Cups, geben Sie in den Einstellungen eine Zeile wie smb://user ein:[E-Mail geschützt] /Xprinter_XP-460B. Wenn der Benutzer ein Windows-Benutzer ist, muss der Benutzer über ein Kennwort verfügen. Die Autorisierung erfolgt nicht mit einem leeren Kennwort.

Wenn alles geklappt hat und der Drucker eine Testseite gedruckt hat, können Aufträge über die Konsole gesendet werden:

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

In diesem Beispiel hat das Etikett die Abmessungen 100x100 mm, 2 mm sind experimentell gewählt. Der Abstand zwischen den Etiketten beträgt 3 mm. Wenn Sie die Höhe jedoch auf 103 mm einstellen, verschiebt sich das Klebeband und das Abreißen des Etiketts ist umständlich. Der Nachteil des LPD-Protokolls besteht darin, dass Aufträge wie an einen normalen Drucker gesendet werden, das ESC/P0S-Format nicht zum Drucken gesendet wird und der Sensor keine Etiketten kalibriert.

Dann können Sie über PHP mit dem Drucker arbeiten. Es gibt Bibliotheken für die Arbeit mit Cups, es ist für mich einfacher, einen Befehl über exec(); an die Konsole zu senden;

Da ESC/P0S nicht funktioniert, habe ich beschlossen, Vorlagen im PDF-Format über die tFPDF-Bibliothek zu erstellen

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');

Konfigurieren eines XPrinter-Etikettendruckers unter Linux in VMware Workstation
Bereit. Ich habe mir 2 Tage frei genommen, um es einzurichten, ich hoffe, es wird jemandem nützlich sein.

Source: habr.com

Kommentar hinzufügen