Nastavení tiskárny štítků XPrinter v systému Linux ve VMware Workstation

Příklad nastavení na CentOS bez grafického shellu; analogicky můžete nastavit na libovolném OS Linux.

Řeším konkrétní problém: Potřebuji tisknout štítky s libovolným textem pomocí šablony z PHP. Vzhledem k tomu, že na akci nemůžete počítat se stabilním připojením k internetu a většina automatizačních úloh se překrývá s webem, rozhodli jsme se pracovat s virtuálním strojem na VMware.

XPrinter je vhodný i pro označování úloh, instalace pod Windows je mnohem jednodušší. Usadil jsem se na modelu XP-460B se šířkou štítku až 108 mm.

Nastavení tiskárny štítků XPrinter v systému Linux ve VMware Workstation

Vzhledem k tomu, že Linux nastavuji a připojuji k němu zařízení jen zřídka, hledal jsem připravené instalační manuály a uvědomil jsem si, že nejjednodušší způsob připojení tiskárny je přes kelímky. Nedařilo se mi připojit tiskárnu přes USB, žádná z manipulací podle rad v manuálech nepomohla, jen jsem několikrát havaroval virtuální stroj.

  • Stáhněte si ovladače z webu výrobce xprintertech.com, dodávají se v jednom archivu pro Windows, Mac a Linux

    V mém případě jsou na webu zveřejněny ovladače pro řadu zařízení 4palcové ovladače tiskárny štítků. Jak se ukázalo, XP-460B se již přestal vyrábět, do které řady patří, jsem přišel na základě strouhanky podobného modelu, XP-470B.

  • Nainstalujte tiskárnu ve Windows, povolte sdílení

    Nastavení tiskárny štítků XPrinter v systému Linux ve VMware Workstation

  • Pro Linux archiv obsahuje 1 soubor 4BARCODE. Toto je soubor „2 v 1“, bash skript s archivem tar, který se sám rozbalí a zkopíruje ovladače do pohárků. V mém případě je pro rozbalení potřeba bzip2 (pro řadu 80 mm se používá jiný archivátor)
    yum install cups
    yum install bzip2
    chmod 744 ./4BARCODE
    sh ./4BARCODE
    service cups start
    
  • Dále musíte otevřít localhost:631 v prohlížeči, pro pohodlí nastavuji otevírání z prohlížeče ve Windows. Upravit /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>
    

    Přidejte port 631 do brány firewall (nebo iptables):

    firewall-cmd --zone=public --add-port=631/tcp --permanent
    firewall-cmd --reload
    
  • Odkaz otevřeme v prohlížeči pomocí IP virtuálního stroje, v mém případě 192.168.1.5:631/admin

    Přidat tiskárnu (musíte zadat root a heslo)

    Nastavení tiskárny štítků XPrinter v systému Linux ve VMware Workstation

  • Jsou 2 možnosti, které se mi podařilo nakonfigurovat, přes protokol LPD a přes sambu.
    1. Pro připojení přes protokol LPD je potřeba službu povolit ve windows (Zapnout nebo vypnout součásti Windows) a restartovat počítač.

      Nastavení tiskárny štítků XPrinter v systému Linux ve VMware Workstation
      V nastavení cups zadejte lpd://192.168.1.52/Xprinter_XP-460B, kde 192.168.1.52 je IP počítače, na kterém je tiskárna nainstalována, Xprinter_XP-460B je název tiskárny v nastavení sdílení systému Windows

      Nastavení tiskárny štítků XPrinter v systému Linux ve VMware Workstation
      Vyberte ovladač 4BARCODE => 4B-3064TA

      Nastavení tiskárny štítků XPrinter v systému Linux ve VMware Workstation
      V parametrech nic nevybíráme ani neukládáme! Zkoušel jsem upravit velikost štítku, ale pak tiskárna z nějakého důvodu nefunguje. Velikost štítku lze zadat v tiskové úloze.

      Nastavení tiskárny štítků XPrinter v systému Linux ve VMware Workstation
      Zkoušíme vytisknout zkušební stránku – hotovo!

    2. Druhá možnost. Musíte nainstalovat sambu, spustit, restartovat cups, pak se v cups objeví nový bod připojení, v nastavení zadejte řádek jako smb://user:[chráněno e-mailem]/Xprinter_XP-460B. Tam, kde je uživatel uživatelem ve Windows, musí mít uživatel nastavené heslo, s prázdným autorizace nefunguje.

Když vše proběhlo v pořádku a tiskárna vytiskla zkušební stránku, lze úlohy odeslat přes konzolu:

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

V tomto příkladu má etiketa rozměry 100x100 mm, experimentálně byly vybrány 2 mm. Vzdálenost mezi štítky je 3 mm, ale pokud nastavíte výšku na 103 mm, páska se posune, takže je nepohodlné štítek odtrhnout. Nevýhodou protokolu LPD je, že úlohy jsou odesílány jako na běžnou tiskárnu, formát ESC/P0S se neodesílá k tisku a snímač nekalibruje štítky.

Poté můžete s tiskárnou pracovat přes php. Existují knihovny pro práci s cups, je pro mě jednodušší poslat příkaz do konzole přes exec();

Protože ESC/P0S nefunguje, rozhodl jsem se udělat šablony v pdf pomocí knihovny 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');

Nastavení tiskárny štítků XPrinter v systému Linux ve VMware Workstation
Připraveno. Strávil jsem 2 víkendy nastavováním, doufám, že se to někomu bude hodit.

Zdroj: www.habr.com

Přidat komentář