XPrinter etikečių spausdintuvo nustatymas Linux sistemoje VMware Workstation

„CentOS“ nustatymo be grafinio apvalkalo pavyzdys; pagal analogiją galite nustatyti bet kurioje „Linux“ OS.

Sprendžiu konkrečią problemą: turiu spausdinti etiketes su savavališku tekstu naudojant PHP šabloną. Kadangi renginio metu negalite tikėtis stabilaus interneto ryšio, o dauguma automatizavimo užduočių sutampa su svetaine, nusprendėme dirbti su virtualia mašina VMware.

„Xprinter“ taip pat tinka užduočių žymėjimui, įdiegimas naudojant „Windows“ yra daug lengvesnis. Aš apsigyvenau prie XP-460B modelio, kurio etiketės plotis iki 108 mm.

XPrinter etikečių spausdintuvo nustatymas Linux sistemoje VMware Workstation

Kadangi retai nustatau Linux ir jungiu prie jos įrenginius, ieškojau paruoštų sąrankos vadovų ir supratau, kad paprasčiausias būdas prijungti spausdintuvą yra per kaušelius. Negalėjau prijungti spausdintuvo per USB, nepadėjo jokios manipuliacijos vadovaujantis instrukcijose pateiktais patarimais, tiesiog kelis kartus sudaužiau virtualią mašiną.

  • Atsisiųskite tvarkykles iš gamintojo svetainės xprintertech.com, jos yra viename archyve, skirtoje „Windows“, „Mac“ ir „Linux“

    Mano atveju, daugelio įrenginių tvarkyklės yra paskelbtos svetainėje 4 colių etikečių spausdintuvo tvarkyklės. Kaip paaiškėjo, XP-460B jau buvo nutrauktas, kuriai serijai jis priklauso, supratau pagal panašaus modelio XP-470B džiūvėsėlius.

  • Įdiekite spausdintuvą sistemoje „Windows“, įgalinkite bendrinimą

    XPrinter etikečių spausdintuvo nustatymas Linux sistemoje VMware Workstation

  • Linux sistemoje archyve yra 1 failas 4BARCODE. Tai yra „2 viename“ failas, bash scenarijus su tar archyvu, kuris išsipakuoja ir nukopijuoja tvarkykles į puodelius. Mano atveju bzip1 reikalingas išpakavimui (2 mm serijai naudojamas kitas archyvatorius)
    yum install cups
    yum install bzip2
    chmod 744 ./4BARCODE
    sh ./4BARCODE
    service cups start
    
  • Toliau reikia atidaryti localhost:631 naršyklėje, patogumo dėlei nustatau, kad būtų atidaryta iš naršyklės Windows sistemoje. Redaguoti /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>
    

    Pridėkite prievadą 631 prie ugniasienės (arba iptables):

    firewall-cmd --zone=public --add-port=631/tcp --permanent
    firewall-cmd --reload
    
  • Nuorodą atidarome naršyklėje naudodami virtualios mašinos IP, mano atveju 192.168.1.5:631/admin

    Pridėkite spausdintuvą (reikia įvesti root ir slaptažodį)

    XPrinter etikečių spausdintuvo nustatymas Linux sistemoje VMware Workstation

  • Yra 2 parinktys, kurias man pavyko sukonfigūruoti per LPD protokolą ir per samba.
    1. Norėdami prisijungti naudodami LPD protokolą, turite įjungti paslaugą sistemoje „Windows“ (įjungti arba išjungti „Windows“ komponentus) ir iš naujo paleisti kompiuterį.

      XPrinter etikečių spausdintuvo nustatymas Linux sistemoje VMware Workstation
      Puodelių nustatymuose įveskite lpd://192.168.1.52/Xprinter_XP-460B, kur 192.168.1.52 yra kompiuterio, kuriame įdiegtas spausdintuvas, IP, Xprinter_XP-460B yra spausdintuvo pavadinimas Windows bendrinimo nustatymuose.

      XPrinter etikečių spausdintuvo nustatymas Linux sistemoje VMware Workstation
      Pasirinkite tvarkyklę 4BARCODE => 4B-3064TA

      XPrinter etikečių spausdintuvo nustatymas Linux sistemoje VMware Workstation
      Mes nieko nepasirenkame ir neišsaugome parametruose! Bandžiau pakoreguoti etiketės dydį, bet spausdintuvas dėl kokių nors priežasčių neveikia. Etiketės dydį galima nurodyti spausdinimo užduotyje.

      XPrinter etikečių spausdintuvo nustatymas Linux sistemoje VMware Workstation
      Bandome atspausdinti bandomąjį puslapį – padaryta!

    2. Antras variantas. Turite įdiegti samba, paleisti, paleisti iš naujo puodelius, tada puodeliuose atsiras naujas prisijungimo taškas, nustatymuose įveskite eilutę kaip smb://user:[apsaugotas el. paštu]/Xprinter_XP-460B. Jei vartotojas yra vartotojas sistemoje Windows, vartotojas turi turėti nustatytą slaptažodį, autorizacija neveikia su tuščiu slaptažodžiu.

Kai viskas pavyko ir spausdintuvas išspausdino bandomąjį puslapį, užduotis galima siųsti per konsolę:

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

Šiame pavyzdyje etiketės matmenys yra 100x100 mm, 2 mm buvo pasirinkti eksperimentiškai. Atstumas tarp etikečių yra 3 mm, tačiau jei nustatote 103 mm aukštį, juosta pasislenka, todėl etiketę bus nepatogu nuplėšti. LPD protokolo trūkumas yra tas, kad užduotys siunčiamos kaip į įprastą spausdintuvą, ESC/P0S formatas nesiunčiamas spausdinti, o jutiklis nekalibruoja etikečių.

Tada galite dirbti su spausdintuvu per php. Yra bibliotekos darbui su puodeliais, man lengviau nusiųsti komandą į konsolę per exec();

Kadangi ESC/P0S neveikia, nusprendžiau padaryti šablonus pdf formatu naudodamas 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');

XPrinter etikečių spausdintuvo nustatymas Linux sistemoje VMware Workstation
Paruošta. Aš praleidau 2 savaitgalius jį nustatydamas, tikiuosi, kad tai bus kam nors naudinga.

Šaltinis: www.habr.com

Добавить комментарий