Поставување печатач за етикети XPrinter на Linux во VMware Workstation

Пример за поставување на CentOS без графичка обвивка; по аналогија, можете да поставите на кој било оперативен систем Linux.

Решам специфичен проблем: треба да печатам етикети со произволен текст користејќи шаблон од PHP. Бидејќи не можете да сметате на стабилна интернет конекција на настанот, а повеќето од задачите за автоматизација се преклопуваат со веб-локацијата, решивме да работиме со виртуелна машина на VMware.

XPrinter е исто така погоден за обележување задачи; инсталацијата под Windows е многу полесна. Се населив на моделот XP-460B со ширина на етикетата до 108 mm.

Поставување печатач за етикети XPrinter на Linux во VMware Workstation

Бидејќи ретко поставувам Linux и поврзувам уреди со него, барав готови прирачници за поставување и сфатив дека најлесниот начин за поврзување на печатач е преку чаши. Не можев да го поврзам печатачот преку USB, не помогнаа никакви манипулации следејќи ги советите во прирачниците, само неколку пати ја урнав виртуелната машина.

  • Преземете ги драјверите од веб-страницата на производителот xprintertech.com, тие доаѓаат во една архива за Windows, Mac и Linux

    На веб-страницата се објавени драјвери за низа уреди, во мојот случај 4-инчни драјвери за печатач за етикети. Како што се испостави, XP-460B веќе е прекинат, сфатив на која серија припаѓа врз основа на лебните трошки од сличен модел, XP-470B.

  • Инсталирајте го печатачот во Windows, овозможете споделување

    Поставување печатач за етикети XPrinter на Linux во VMware Workstation

  • За Linux, архивата содржи 1 датотека 4 БАРКОД. Ова е датотека „2 во 1“, баш скрипта со архива со катран што се отпакува и ги копира драјверите во чаши. Во мојот случај, bzip2 е потребен за отпакување (за серијата 80 mm се користи различен архивар)
    yum install cups
    yum install bzip2
    chmod 744 ./4BARCODE
    sh ./4BARCODE
    service cups start
    
  • Следно, треба да отворите localhost:631 во прелистувачот, за погодност правам поставка за отворање од прелистувачот во Windows. Уреди /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>
    

    Додајте порта 631 на заштитниот ѕид (или iptables):

    firewall-cmd --zone=public --add-port=631/tcp --permanent
    firewall-cmd --reload
    
  • Ја отвораме врската во прелистувачот користејќи IP на виртуелната машина, во мојот случај 192.168.1.5:631/админ

    Додадете печатач (треба да внесете root и лозинка)

    Поставување печатач за етикети XPrinter на Linux во VMware Workstation

  • Има 2 опции кои успеав да ги конфигурирам, преку протоколот LPD и преку самба.
    1. За да се поврзете преку протоколот LPD, треба да ја овозможите услугата во Windows (Вклучете или исклучете ги компонентите на Windows) и рестартирајте го компјутерот.

      Поставување печатач за етикети XPrinter на Linux во VMware Workstation
      Во поставките за чаши, внесете lpd://192.168.1.52/Xprinter_XP-460B, каде што 192.168.1.52 е IP на компјутерот на кој е инсталиран печатачот, Xprinter_XP-460B е името на печатачот во поставките за споделување на Windows

      Поставување печатач за етикети XPrinter на Linux во VMware Workstation
      Изберете драјвер 4BARCODE => 4B-3064TA

      Поставување печатач за етикети XPrinter на Linux во VMware Workstation
      Ние не избираме или зачувуваме ништо во параметрите! Се обидов да ја прилагодам големината на етикетата, но тогаш печатачот не работи поради некоја причина. Големината на етикетата може да се одреди во задачата за печатење.

      Поставување печатач за етикети XPrinter на Linux во VMware Workstation
      Се обидуваме да испечатиме тест страница - готово!

    2. Втора опција. Треба да инсталирате самба, да започнете, да ги рестартирате чашите, потоа ќе се појави нова точка за поврзување во чашите, во поставките внесете линија како smb://user:[заштитена по е-пошта]/Xprinter_XP-460B. Онаму каде што корисникот е корисник во Windows, корисникот мора да има поставена лозинка, овластувањето не работи со празна.

Кога сè ќе заврши и печатачот испечати тест страница, задачите може да се испраќаат преку конзолата:

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

Во овој пример, етикетата има димензии од 100x100 mm, 2 mm беа избрани експериментално. Растојанието помеѓу етикетите е 3 mm, но ако ја поставите висината на 103 mm, лентата се поместува, што го прави незгодно да се откине етикетата. Недостаток на протоколот LPD е што задачите се испраќаат како обичен печатач, форматот ESC/P0S не се испраќа за печатење и сензорот не ги калибрира етикетите.

Потоа можете да работите со печатачот преку php. Има библиотеки за работа со чаши, полесно ми е да испратам команда до конзолата преку exec();

Бидејќи ESC/P0S не работи, решив да направам шаблони во pdf користејќи ја библиотеката tFPDF

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 на Linux во VMware Workstation
Подготвени. Потрошив 2 викенди за да го поставам, се надевам дека ова ќе биде корисно за некого.

Извор: www.habr.com

Додадете коментар