Agordante etikedprintilon XPrinter en Linukso en VMware Workstation

Ekzemplo por agordi sur CentOS sen grafika ŝelo; analoge, vi povas agordi en iu ajn Linukso OS.

Mi solvas specifan problemon: mi bezonas presi etikedojn kun arbitra teksto uzante ŝablonon de PHP. Ĉar vi ne povas kalkuli pri stabila interreta konekto ĉe la evento, kaj la plej multaj el la aŭtomatigaj taskoj interkovras kun la retejo, ni decidis labori kun virtuala maŝino sur VMware.

XPrinter ankaŭ taŭgas por markado de taskoj; instalo sub Vindozo estas multe pli facila. Mi decidis por la modelo XP-460B kun etikedo-larĝo de ĝis 108 mm.

Agordante etikedprintilon XPrinter en Linukso en VMware Workstation

Ĉar mi malofte instalis Linukson kaj konektis aparatojn al ĝi, mi serĉis pretajn agordajn manlibrojn kaj konstatis, ke la plej facila maniero por konekti presilon estas per tasoj. Mi ne povis konekti la presilon per USB; neniu el la manipuladoj sekvante la konsilojn en la manlibroj helpis, mi nur kraŝis la virtualan maŝinon plurfoje.

  • Elŝutu ŝoforojn de la retejo de la fabrikanto xprintertech.com, ili venas en unu arkivo por Vindozo, Mac kaj Linukso.

    Ŝoforoj estas afiŝitaj en la retejo por serio da aparatoj, en mia kazo 4 coloj Etikedaj Presiloj. Kiel rezultas, la XP-460B jam estis nuligita; Mi eltrovis al kiu serio ĝi apartenas surbaze de la pano de simila modelo, la XP-470B.

  • Instalu la presilon en Vindozo, ebligu kundividon

    Agordante etikedprintilon XPrinter en Linukso en VMware Workstation

  • Por Linukso, la arkivo enhavas 1 dosieron 4BARCODE. Ĉi tio estas dosiero "2 en 1", bash-skripto kun gudro-arkivo, kiu malpakiĝas kaj kopias la ŝoforojn al tasoj. En mia kazo, bzip2 estas bezonata por malpakado (por la 80 mm-serio oni uzas malsaman arkivilon)
    yum install cups
    yum install bzip2
    chmod 744 ./4BARCODE
    sh ./4BARCODE
    service cups start
    
  • Poste vi devas malfermi localhost:631 en la retumilo, por komforto mi faras agordon por malfermi de la retumilo en Vindozo. Redaktu /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>
    

    Aldonu pordon 631 al la fajroŝirmilo (aŭ iptables):

    firewall-cmd --zone=public --add-port=631/tcp --permanent
    firewall-cmd --reload
    
  • Ni malfermas la ligilon en la retumilo uzante la IP de la virtuala maŝino, en mia kazo 192.168.1.5:631/admin

    Aldonu presilon (vi devas enigi radikon kaj pasvorton)

    Agordante etikedprintilon XPrinter en Linukso en VMware Workstation

  • Estas 2 opcioj kiujn mi sukcesis agordi, per la LPD-protokolo kaj per sambo.
    1. Por konektiĝi per la LPD-protokolo, vi devas ebligi la servon en fenestroj (Ŝalti aŭ malŝalti Vindozajn komponantojn) kaj rekomenci la komputilon.

      Agordante etikedprintilon XPrinter en Linukso en VMware Workstation
      En la tasoj-agordoj, enigu lpd://192.168.1.52/Xprinter_XP-460B, kie 192.168.1.52 estas la IP de la komputilo sur kiu la presilo estas instalita, Xprinter_XP-460B estas la nomo de la presilo en la kundividaj agordoj de fenestroj.

      Agordante etikedprintilon XPrinter en Linukso en VMware Workstation
      Elektu pelilon 4BARCODE => 4B-3064TA

      Agordante etikedprintilon XPrinter en Linukso en VMware Workstation
      Ni elektas aŭ konservas nenion en la parametroj! Mi provis ĝustigi la etikedgrandon, sed tiam la presilo ial ne funkcias. La etikedo grandeco povas esti specifita en la presado.

      Agordante etikedprintilon XPrinter en Linukso en VMware Workstation
      Ni provas presi testpaĝon - farita!

    2. Dua opcio. Vi devas instali sambon, komenci, rekomenci tasojn, tiam nova ligpunkto aperos en tasoj, en la agordojn enigu linion kiel smb://uzanto:[retpoŝte protektita]/Xprinter_XP-460B. Kie, uzanto estas uzanto en Vindozo, la uzanto devas havi pasvorton agordita, rajtigo ne funkcias kun malplena.

Kiam ĉio funkciis kaj la presilo presis testpaĝon, laboroj povas esti senditaj per la konzolo:

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

En ĉi tiu ekzemplo, la etikedo havas dimensiojn de 100x100 mm, 2 mm estis elektitaj eksperimente. La distanco inter la etikedoj estas 3 mm, sed se vi fiksas la altecon al 103 mm, la bendo ŝanĝiĝas, maloportante deŝiri la etikedon. La malavantaĝo de la LPD-protokolo estas, ke laborpostenoj estas senditaj kiel al regula presilo, la formato ESC/P0S ne estas sendita por presado, kaj la sensilo ne kalibras etikedojn.

Tiam vi povas labori kun la presilo per php. Estas bibliotekoj por labori kun tasoj, estas pli facile por mi sendi komandon al la konzolo per exec();

Ĉar ESC/P0S ne funkcias, mi decidis fari ŝablonojn en pdf uzante la tFPDF-bibliotekon

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

Agordante etikedprintilon XPrinter en Linukso en VMware Workstation
Preta. Mi pasigis 2 semajnfinojn aranĝante ĝin, mi esperas, ke ĉi tio estos utila al iu.

fonto: www.habr.com

Aldoni komenton