Stel 'n XPrinter-etiketdrukker op Linux in VMware Workstation op

'N Voorbeeld vir die opstel op CentOS sonder 'n grafiese dop; analoog, jy kan op enige Linux-bedryfstelsel opstel.

Ek los 'n spesifieke probleem op: ek moet etikette met arbitrêre teks druk deur 'n sjabloon van PHP te gebruik. Aangesien u nie op 'n stabiele internetverbinding by die geleentheid kan staatmaak nie, en die meeste van die outomatiseringstake met die webwerf oorvleuel, het ons besluit om met 'n virtuele masjien op VMware te werk.

XPrinter is ook geskik om take te merk; installasie onder Windows is baie makliker. Ek het besluit op die XP-460B-model met 'n etiketwydte van tot 108 mm.

Stel 'n XPrinter-etiketdrukker op Linux in VMware Workstation op

Aangesien ek selde Linux opstel en toestelle daaraan koppel, het ek na klaargemaakte opstellingshandleidings gesoek en besef dat die maklikste manier om 'n drukker te koppel deur koppies is. Ek kon nie die drukker via USB koppel nie, geen manipulasies na aanleiding van die advies in die handleidings het gehelp nie, ek het net die virtuele masjien verskeie kere neergestort.

  • Laai bestuurders af van die vervaardiger se webwerf xprintertech.com, hulle kom in een argief vir Windows, Mac en Linux

    Bestuurders word op die webwerf geplaas vir 'n reeks toestelle, in my geval 4 duim etiket drukker drywers. Soos dit blyk, is die XP-460B reeds gestaak; Ek het uitgepluis aan watter reeks dit behoort, gebaseer op die broodkrummels van 'n soortgelyke model, die XP-470B.

  • Installeer die drukker in Windows, aktiveer deling

    Stel 'n XPrinter-etiketdrukker op Linux in VMware Workstation op

  • Vir Linux bevat die argief 1 lêer 4BARCODE. Dit is 'n "2 in 1" lêer, 'n bash script met 'n teer argief wat homself uitpak en die drywers na koppies kopieer. In my geval is bzip2 nodig om uit te pak (vir die 80 mm-reeks word 'n ander argiefhouer gebruik)
    yum install cups
    yum install bzip2
    chmod 744 ./4BARCODE
    sh ./4BARCODE
    service cups start
    
  • Volgende moet jy oopmaak localhost:631 in die blaaier, maak ek gerieflikheidshalwe 'n instelling om vanaf die blaaier in Windows oop te maak. Wysig /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>
    

    Voeg poort 631 by die firewall (of iptables):

    firewall-cmd --zone=public --add-port=631/tcp --permanent
    firewall-cmd --reload
    
  • Ons maak die skakel in die blaaier oop met die IP van die virtuele masjien, in my geval 192.168.1.5:631/admin

    Voeg 'n drukker by (jy moet root en wagwoord invoer)

    Stel 'n XPrinter-etiketdrukker op Linux in VMware Workstation op

  • Daar is 2 opsies wat ek daarin geslaag het om te konfigureer, via die LPD-protokol en via samba.
    1. Om via die LPD-protokol te koppel, moet jy die diens in Windows aktiveer (Skakel Windows-komponente aan of af) en die rekenaar herbegin.

      Stel 'n XPrinter-etiketdrukker op Linux in VMware Workstation op
      In die koppies-instellings, voer lpd://192.168.1.52/Xprinter_XP-460B in, waar 192.168.1.52 die IP van die rekenaar is waarop die drukker geïnstalleer is, Xprinter_XP-460B is die naam van die drukker in die vensters se deelinstellings

      Stel 'n XPrinter-etiketdrukker op Linux in VMware Workstation op
      Kies bestuurder 4BARCODE => 4B-3064TA

      Stel 'n XPrinter-etiketdrukker op Linux in VMware Workstation op
      Ons kies of stoor niks in die parameters nie! Ek het probeer om die etiketgrootte aan te pas, maar toe werk die drukker om een ​​of ander rede nie. Die etiketgrootte kan in die druktaak gespesifiseer word.

      Stel 'n XPrinter-etiketdrukker op Linux in VMware Workstation op
      Ons probeer om 'n toetsbladsy te druk - klaar!

    2. Tweede opsie. Jy moet samba installeer, begin, koppies herbegin, dan sal 'n nuwe verbindingspunt in koppies verskyn, voer 'n reël in soos smb://user in die instellings:[e-pos beskerm]/Xprinter_XP-460B. Waar, gebruiker 'n gebruiker in Windows is, moet die gebruiker 'n wagwoord gestel hê, magtiging werk nie met 'n leë een nie.

Wanneer alles uitgewerk het en die drukker 'n toetsbladsy gedruk het, kan take via die konsole gestuur word:

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

In hierdie voorbeeld het die etiket afmetings van 100x100 mm, 2 mm is eksperimenteel gekies. Die afstand tussen die etikette is 3 mm, maar as jy die hoogte op 103 mm stel, skuif die band, wat dit ongerieflik maak om die etiket af te skeur. Die nadeel van die LPD-protokol is dat take soos 'n gewone drukker gestuur word, die ESC/P0S-formaat word nie vir druk gestuur nie, en die sensor kalibreer nie etikette nie.

Dan kan jy met die drukker werk via php. Daar is biblioteke om met koppies te werk, dit is vir my makliker om 'n opdrag na die konsole te stuur via exec();

Aangesien ESC/P0S nie werk nie, het ek besluit om sjablone in pdf te maak deur die tFPDF-biblioteek te gebruik

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

Stel 'n XPrinter-etiketdrukker op Linux in VMware Workstation op
Gereed. Ek het 2 naweke spandeer om dit op te stel, ek hoop dit sal nuttig wees vir iemand.

Bron: will.com

Voeg 'n opmerking