Настройка друкаркі этыкетак XPrinter на Linux у VMware Workstation

Прыклад для наладкі ў CentOS без графічнай абалонкі, па аналогіі можна наладзіць на любой АС Linux.

Вырашаю спецыфічную задачу, з php трэба друкаваць этыкеткі з адвольным тэкстам па шаблоне. Паколькі на мерапрыемстве нельга разлічваць на стабільны інтэрнэт, а большая частка задач па аўтаматызацыі перасякаецца з вэб-сайтам, прынялі рашэнне працаваць з віртуальнай машынай на VMware.

XPrinter падыдуць і для задач маркіроўкі, пад windows усталёўваюцца значна прасцей. Спыніўся на мадэлі XP-460B з шырынёй этыкеткі да 108 мм.

Настройка друкаркі этыкетак XPrinter на Linux у VMware Workstation

Паколькі наладай Linux і падлучэннем прылад да яго займаюся вельмі рэдка, шукаў гатовыя мануалы па наладзе, зразумеў што самы просты спосаб падлучыць друкарку праз cups. У мяне не атрымалася падлучыць друкарку па USB, не дапамаглі ніякія маніпуляцыі па парадах у мануалах, толькі зламаў віртуальную машыну некалькі разоў.

  • Спампоўваем драйвера з сайта вытворцы xprintertech.com, яны ідуць адным архівам для Windows, Mac і Linux

    Драйвера размешчаны на сайце для серыі прылад, у маім выпадку 4 inch Label Printer Drivers. Як апынулася, XP-460B ужо зняты з вытворчасці, зразумеў да якой серыі ён ставіцца па хлебным крошкам падобнай мадэлі XP-470B.

  • Усталёўваны друкарка ў windows, уключаем агульны доступ

    Настройка друкаркі этыкетак XPrinter на Linux у VMware Workstation

  • Для Linux у архіве 1 файл 4BARCODE. Гэта "2 у 1" файл, bash сцэнар з tar архівам, які сам сябе распакоўвае і капіюе драйвера ў cups. У маім выпадку для распакавання патрэбен bzip2 (для серыі 80 мм выкарыстоўваецца іншы архіватар)
    yum install cups
    yum install bzip2
    chmod 744 ./4BARCODE
    sh ./4BARCODE
    service cups start
    
  • Далей трэба адкрыць лакальны: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 порт у firewall (ці ў iptables):

    firewall-cmd --zone=public --add-port=631/tcp --permanent
    firewall-cmd --reload
    
  • Адкрываем спасылку ў браўзэры па IP віртуальнай машыны, у маім выпадку 192.168.1.5:631/admin

    Дадаем прынтэр (трэба ўвесці root і пароль)

    Настройка друкаркі этыкетак XPrinter на Linux у VMware Workstation

  • Ёсць 2 варыянты, якія мне ўдалося наладзіць, па пратаколе LPD і праз samba.
    1. Для падлучэння па пратаколе LPD, трэба ўключыць службу ў windows (Уключэнне ці адключэнне кампанентаў Windows), перазагрузіць кампутар.

      Настройка друкаркі этыкетак XPrinter на Linux у VMware Workstation
      У наладах cups уводзім 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. Другі варыянт. Трэба ўсталяваць samba, запусціць, перазапусціць cups, тады з'явіцца новы пункт падлучэння ў cups, у наладах увесці радок выгляду smb://user:[электронная пошта абаронена]/Xprinter_XP-460B. Дзе, user - карыстач у windows, у карыстача абавязкова павінен быць зададзены пароль, з пустым аўтарызацыя не праходзіць.

Калі ўсё атрымалася і прынтэр раздрукаваў выпрабавальную старонку, заданні можна адпраўляць праз кансоль:

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

У дадзеным прыкладзе этыкетка мае памеры 100х100 мм, 2 мм падабраны эксперыментальна. Адлегласць паміж этыкеткамі 3 мм, але калі выставіць вышыню 103 мм, адбываецца зрух стужкі, няёмка адрываць этыкетку. Недахоп пратаколу LPD - заданні адпраўляюцца як на звычайную друкарку, фармат ESC/P0S не адпраўляецца на друк, сэнсар не калібруе этыкеткі.

Далей можна працаваць з друкаркай праз php. Ёсць бібліятэкі для працы з cups, мне прасцей адправіць каманду ў кансоль праз 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 выходныя, спадзяюся, камусьці гэта будзе карысна.

Крыніца: habr.com

Дадаць каментар