Konfiguration af en XPrinter Label Printer på Linux i VMware Workstation

Et eksempel på opsætning i CentOS uden en grafisk shell; analogt kan du sætte det op på ethvert Linux OS.

Jeg løser et specifikt problem, fra php skal jeg udskrive etiketter med vilkårlig tekst efter en skabelon. Da begivenheden ikke kan stole på et stabilt internet, og de fleste af automatiseringsopgaverne overlapper med hjemmesiden, besluttede vi at arbejde med en virtuel maskine på VMware.

XPrinter er også velegnet til at markere opgaver, det er meget nemmere at installere under vinduer. Jeg nøjedes med XP-460B-modellen med en etiketbredde på op til 108 mm.

Konfiguration af en XPrinter Label Printer på Linux i VMware Workstation

Da jeg sjældent opsætter Linux og tilslutter enheder til det, ledte jeg efter færdige opsætningsmanualer, jeg indså, at den nemmeste måde at tilslutte en printer er gennem kopper. Jeg kunne ikke tilslutte printeren via USB, ingen manipulationer på rådene i manualerne hjalp, jeg brød bare den virtuelle maskine flere gange.

  • Vi downloader driverne fra producentens hjemmeside xprintertech.com, de kommer i ét arkiv til Windows, Mac og Linux

    Drivere er lagt på webstedet til en række enheder, i mit tilfælde 4 tommer etiketprinterdrivere. Da det viste sig, er XP-460B allerede udgået, jeg fandt ud af hvilken serie den tilhører baseret på brødkrummer af en lignende XP-470B-model.

  • Installer printeren i Windows, aktiver deling

    Konfiguration af en XPrinter Label Printer på Linux i VMware Workstation

  • For Linux indeholder arkivet 1 fil 4BARCODE. Dette er en 2 i 1 fil, et bash-script med et tar-arkiv, der pakker sig selv ud og kopierer driverne til kopper. I mit tilfælde er bzip2 nødvendig til udpakning (til 80 mm-serien bruges en anden arkiver)
    yum install cups
    yum install bzip2
    chmod 744 ./4BARCODE
    sh ./4BARCODE
    service cups start
    
  • Dernæst skal du åbne localhost:631 i browseren, for nemheds skyld foretager jeg indstillingen til at åbne fra browseren 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>
    

    Tilføj port 631 til firewall (eller iptables):

    firewall-cmd --zone=public --add-port=631/tcp --permanent
    firewall-cmd --reload
    
  • Vi åbner linket i browseren ved IP-adressen på den virtuelle maskine, i mit tilfælde 192.168.1.5:631/admin

    Tilføj en printer (du skal indtaste root og adgangskode)

    Konfiguration af en XPrinter Label Printer på Linux i VMware Workstation

  • Der er 2 muligheder, som jeg formåede at konfigurere, via LPD-protokollen og via samba.
    1. For at oprette forbindelse via LPD-protokollen skal du aktivere tjenesten i Windows (Slå Windows-funktioner til eller fra), genstart computeren.

      Konfiguration af en XPrinter Label Printer på Linux i VMware Workstation
      Indtast lpd://192.168.1.52/Xprinter_XP-460B i kopindstillingerne, hvor 192.168.1.52 er IP-adressen på den computer, som printeren er installeret på, Xprinter_XP-460B er navnet på printeren i Windows-delingsindstillingerne

      Konfiguration af en XPrinter Label Printer på Linux i VMware Workstation
      Vælg driver 4BARCODE => 4B-3064TA

      Konfiguration af en XPrinter Label Printer på Linux i VMware Workstation
      Vi vælger ikke noget i parametrene og gemmer ikke! Jeg prøvede at justere etiketstørrelsen, men så virker printeren af ​​en eller anden grund ikke. Etiketstørrelsen kan indstilles i udskriftsjobbet.

      Konfiguration af en XPrinter Label Printer på Linux i VMware Workstation
      Forsøger at udskrive en testside - færdig!

    2. Anden mulighed. Du skal installere samba, start, genstart cups, så vil et nyt forbindelsespunkt dukke op i cups, indtast en linje som smb://user i indstillingerne:[e-mail beskyttet]/Xprinter_XP-460B. Hvor brugeren er en bruger i Windows, skal brugeren have en adgangskode, godkendelsen passerer ikke med en tom.

Når alt fungerede, og printeren udskrev en testside, kan job sendes gennem konsollen:

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

I dette eksempel har etiketten dimensioner på 100x100 mm, 2 mm vælges eksperimentelt. Afstanden mellem etiketterne er 3 mm, men sætter man højden til 103 mm, forskydes tapen, det er upraktisk at rive etiketten af. Ulempen ved LPD-protokollen er, at job sendes som en almindelig printer, ESC/P0S-formatet sendes ikke til udskrivning, sensoren kalibrerer ikke etiketter.

Så kan du arbejde med printeren gennem php. Der er biblioteker til at arbejde med kopper, det er nemmere for mig at sende en kommando til konsollen via exec();

Da ESC/P0S ikke virker, besluttede jeg at lave skabeloner i pdf via tFPDF bibliotek

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

Konfiguration af en XPrinter Label Printer på Linux i VMware Workstation
Parat. Jeg dræbte 2 fridage for at sætte op, jeg håber, det vil være nyttigt for nogen.

Kilde: www.habr.com

Tilføj en kommentar