Konfigurere en XPrinter-etikettskriver på Linux i VMware Workstation

Et eksempel for å sette opp i CentOS uten et grafisk skall; analogt sett kan du sette det opp på et hvilket som helst Linux OS.

Jeg løser et spesifikt problem, fra php må jeg skrive ut etiketter med vilkårlig tekst i henhold til en mal. Siden arrangementet ikke kan stole på et stabilt Internett, og de fleste automatiseringsoppgavene overlapper med nettsiden, bestemte vi oss for å jobbe med en virtuell maskin på VMware.

XPrinter egner seg også til å merke oppgaver, den er mye enklere å installere under vinduer. Jeg slo meg til ro med XP-460B-modellen med en etikettbredde på opptil 108 mm.

Konfigurere en XPrinter-etikettskriver på Linux i VMware Workstation

Siden jeg sjelden setter opp Linux og kobler enheter til den, lette jeg etter ferdige installasjonsmanualer, innså jeg at den enkleste måten å koble til en skriver på er gjennom kopper. Jeg kunne ikke koble til skriveren via USB, ingen manipulasjoner på rådene i håndbøkene hjalp, jeg knuste den virtuelle maskinen flere ganger.

  • Vi laster ned driverne fra produsentens nettside xprintertech.com, de kommer i ett arkiv for Windows, Mac og Linux

    Drivere er lagt ut på nettstedet for en rekke enheter, i mitt tilfelle 4 tommers etikettskriverdrivere. Som det viste seg, har XP-460B allerede blitt avviklet, jeg fant ut hvilken serie den tilhører basert på brødsmuler av en lignende XP-470B-modell.

  • Installer skriveren i Windows, aktiver deling

    Konfigurere en XPrinter-etikettskriver på Linux i VMware Workstation

  • For Linux inneholder arkivet 1 fil 4BARCODE. Dette er en 2-i-1-fil, et bash-skript med et tar-arkiv som pakker seg ut og kopierer driverne til kopper. I mitt tilfelle er bzip2 nødvendig for utpakking (for 80 mm-serien brukes en annen arkiver)
    yum install cups
    yum install bzip2
    chmod 744 ./4BARCODE
    sh ./4BARCODE
    service cups start
    
  • Deretter må du åpne localhost:631 i nettleseren, for enkelhets skyld gjør jeg innstillingen for å åpne fra nettleseren i Windows. Rediger /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>
    

    Legg til port 631 til brannmuren (eller iptables):

    firewall-cmd --zone=public --add-port=631/tcp --permanent
    firewall-cmd --reload
    
  • Vi åpner lenken i nettleseren ved IP-en til den virtuelle maskinen, i mitt tilfelle 192.168.1.5:631/admin

    Legg til en skriver (du må angi root og passord)

    Konfigurere en XPrinter-etikettskriver på Linux i VMware Workstation

  • Det er 2 alternativer som jeg klarte å konfigurere, via LPD-protokollen og via samba.
    1. For å koble til via LPD-protokollen, må du aktivere tjenesten i Windows (Slå Windows-funksjoner på eller av), start datamaskinen på nytt.

      Konfigurere en XPrinter-etikettskriver på Linux i VMware Workstation
      I koppinnstillingene skriver du inn lpd://192.168.1.52/Xprinter_XP-460B, der 192.168.1.52 er IP-en til datamaskinen som skriveren er installert på, Xprinter_XP-460B er navnet på skriveren i Windows-delingsinnstillingene

      Konfigurere en XPrinter-etikettskriver på Linux i VMware Workstation
      Velg driver 4BARCODE => 4B-3064TA

      Konfigurere en XPrinter-etikettskriver på Linux i VMware Workstation
      Vi velger ikke noe i parameterne og lagrer ikke! Jeg prøvde å justere etikettstørrelsen, men så fungerer ikke skriveren av en eller annen grunn. Etikettstørrelsen kan angis i utskriftsjobben.

      Konfigurere en XPrinter-etikettskriver på Linux i VMware Workstation
      Prøver å skrive ut en testside - ferdig!

    2. Andre alternativ. Du må installere samba, starte, starte cups på nytt, så vil et nytt tilkoblingspunkt vises i cups, i innstillingene skriver du inn en linje som smb://user:[e-postbeskyttet]/Xprinter_XP-460B. Der brukeren er en bruker i Windows, må brukeren ha et passord, autorisasjonen går ikke med et tomt.

Når alt ordnet seg og skriveren skrev ut en testside, kan jobber sendes gjennom konsollen:

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

I dette eksemplet har etiketten dimensjoner på 100x100 mm, 2 mm velges eksperimentelt. Avstanden mellom etikettene er 3 mm, men setter du høyden til 103 mm forskyver tapen seg, det er upraktisk å rive av etiketten. Ulempen med LPD-protokollen er at jobber sendes som en vanlig skriver, ESC/P0S-formatet sendes ikke til utskrift, sensoren kalibrerer ikke etiketter.

Da kan du jobbe med skriveren gjennom php. Det finnes biblioteker for å jobbe med kopper, det er lettere for meg å sende en kommando til konsollen via exec();

Siden ESC/P0S ikke fungerer, bestemte jeg meg for å lage maler i pdf via tFPDF-biblioteket

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

Konfigurere en XPrinter-etikettskriver på Linux i VMware Workstation
Klar. Jeg drepte 2 dager fri for å sette opp, jeg håper det vil være nyttig for noen.

Kilde: www.habr.com

Legg til en kommentar