Konfigurieren eines XPrinter-Etikettendruckers unter Linux in VMware Workstation

Ein Beispiel für die Konfiguration unter CentOS ohne grafische Shell. Analog können Sie es unter jedem Linux-Betriebssystem konfigurieren.

Ich löse ein spezifisches Problem, von PHP müssen Sie Etiketten mit beliebigem Text entsprechend der Vorlage drucken. Da es unmöglich ist, auf der Veranstaltung auf ein stabiles Internet zu zählen, und die meisten Automatisierungsaufgaben sich mit der Website überschneiden, haben wir uns entschlossen, mit der virtuellen Maschine auf VMware zu arbeiten.

XPrinter eignet sich auch zum Markieren von Aufgaben, die Installation unter Windows ist viel einfacher. Er blieb beim Modell XP-460B mit einer Etikettenbreite von bis zu 108 mm stehen.



Da ich mich selten mit Linux-Setup und dem Anschließen von Geräten beschäftige, suchte ich nach vorgefertigten Konfigurationshandbüchern und erkannte, dass dies der einfachste Weg ist, den Drucker über Tassen anzuschließen. Ich konnte den Drucker nicht über USB anschließen, keine Manipulationen an den Tipps in den Handbüchern halfen, ich habe die virtuelle Maschine nur mehrmals kaputt gemacht.

  • Laden Sie die Treiber von der Website des Herstellers xprintertech.com herunter. Sie befinden sich in einem Archiv für Windows, Mac und Linux. Die

    Treiber befinden sich auf der Website für eine Reihe von Geräten, in meinem Fall 4-Zoll-Etikettendruckertreiber . Wie sich herausstellte, wurde der XP-460B bereits eingestellt. Ich erkannte, zu welcher Serie er in den Brotkrumen des ähnlichen XP-470B-Modells gehört.
  • Installieren Sie den Drucker in Windows und aktivieren Sie die Freigabe

  • Linux 1 4BARCODE. «2 1» , bash tar , cups. bzip2 ( 80 )

    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 firewall ( iptables):

    firewall-cmd --zone=public --add-port=631/tcp --permanent
    firewall-cmd --reload
    
  • IP , 192.168.1.5:631/admin

    ( root )

  • 2 , , LPD samba.

    1. LPD, windows ( Windows), .


      cups lpd://192.168.1.52/Xprinter_XP-460B, 192.168.1.52 — IP , , Xprinter_XP-460B — windows


      4BARCODE => 4B-3064TA


      ! , - . .


      — !
    2. . samba, , cups, cups, smb://user:password@192.168.1.52/Xprinter_XP-460B. , user — windows, , .

Wenn sich alles herausgestellt hat und der Drucker eine Testseite gedruckt hat, können die Aufgaben über die Konsole gesendet werden:

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

In diesem Beispiel hat das Etikett Abmessungen von 100x100 mm, 2 mm werden experimentell ausgewählt. Der Abstand zwischen den Etiketten beträgt 3 mm. Wenn Sie jedoch die Höhe auf 103 mm einstellen, wird das Band verschoben, und es ist unpraktisch, das Etikett abzureißen. Der Nachteil des LPD-Protokolls besteht darin, dass Aufträge an einen normalen Drucker gesendet werden, das ESC / P0S-Format nicht an den Drucker gesendet wird und der Sensor die Etiketten nicht kalibriert.

Dann können Sie mit dem Drucker über PHP 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');


Erledigt. Ich habe 2 freie Tage getötet, um mich einzurichten. Ich hoffe, es wird jemandem nützlich sein.

All Articles