VMware Workstation'da Linux üzerinde XPrinter etiket yazıcısı kurma

Grafiksel kabuk olmadan CentOS'ta kurulum örneği; benzer şekilde herhangi bir Linux işletim sistemi üzerinde kurulum yapabilirsiniz.

Belirli bir sorunu çözüyorum: PHP'den bir şablon kullanarak rastgele metin içeren etiketler yazdırmam gerekiyor. Etkinlikte istikrarlı bir İnternet bağlantısına güvenemeyeceğiniz ve otomasyon görevlerinin çoğu web sitesiyle örtüştüğü için VMware üzerinde bir sanal makineyle çalışmaya karar verdik.

XPrinter ayrıca işaretleme görevleri için de uygundur; Windows altında kurulum çok daha kolaydır. Etiket genişliği 460 mm'ye kadar olan XP-108B modelinde karar kıldım.

VMware Workstation'da Linux üzerinde XPrinter etiket yazıcısı kurma

Nadiren Linux kurup ona cihaz bağladığımdan, hazır kurulum kılavuzları aradım ve bir yazıcıyı bağlamanın en kolay yolunun kaplar aracılığıyla olduğunu fark ettim. Yazıcıyı USB üzerinden bağlayamadım, kılavuzlardaki tavsiyeleri takip eden hiçbir değişiklik yardımcı olmadı, sanal makineyi birkaç kez çökerttim.

  • Sürücüleri üreticinin xprintertech.com web sitesinden indirin; Windows, Mac ve Linux için tek bir arşiv halinde gelirler

    Benim durumumda, sürücüler bir dizi cihaz için web sitesinde yayınlanmıştır. 4 inç Etiket Yazıcı Sürücüleri. Görünüşe göre XP-460B'nin üretimi durdurulmuş, benzer bir model olan XP-470B'nin kırıntılarına dayanarak hangi seriye ait olduğunu anladım.

  • Yazıcıyı Windows'a yükleyin, paylaşımı etkinleştirin

    VMware Workstation'da Linux üzerinde XPrinter etiket yazıcısı kurma

  • Linux için arşiv 1 dosya 4BARCODE içerir. Bu, "2'si 1 arada" bir dosyadır, kendini açan ve sürücüleri bardaklara kopyalayan tar arşivine sahip bir bash betiğidir. Benim durumumda paketi açmak için bzip2 gerekiyor (80 mm serisi için farklı bir arşivleyici kullanılıyor)
    yum install cups
    yum install bzip2
    chmod 744 ./4BARCODE
    sh ./4BARCODE
    service cups start
    
  • Daha sonra açmanız gerekiyor localhost:631 tarayıcıda, kolaylık sağlamak için Windows'ta tarayıcıdan açılacak bir ayar yapıyorum. /etc/cups/cupsd.conf dosyasını düzenleyin:
    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>
    

    Güvenlik duvarına (veya iptables'a) 631 numaralı bağlantı noktasını ekleyin:

    firewall-cmd --zone=public --add-port=631/tcp --permanent
    firewall-cmd --reload
    
  • Benim durumumda bağlantıyı sanal makinenin IP'sini kullanarak tarayıcıda açıyoruz. 192.168.1.5:631/yönetici

    Bir yazıcı ekleyin (kök ve şifre girmeniz gerekir)

    VMware Workstation'da Linux üzerinde XPrinter etiket yazıcısı kurma

  • LPD protokolü ve samba aracılığıyla yapılandırmayı başardığım 2 seçenek var.
    1. LPD protokolü aracılığıyla bağlanmak için Windows'ta hizmeti etkinleştirmeniz (Windows bileşenlerini açma veya kapatma) ve bilgisayarı yeniden başlatmanız gerekir.

      VMware Workstation'da Linux üzerinde XPrinter etiket yazıcısı kurma
      Bardak ayarlarında lpd://192.168.1.52/Xprinter_XP-460B girin; burada 192.168.1.52, yazıcının yüklü olduğu bilgisayarın IP'sidir, Xprinter_XP-460B, Windows paylaşım ayarlarındaki yazıcının adıdır

      VMware Workstation'da Linux üzerinde XPrinter etiket yazıcısı kurma
      4BARCODE => 4B-3064TA sürücüsünü seçin

      VMware Workstation'da Linux üzerinde XPrinter etiket yazıcısı kurma
      Parametrelerde hiçbir şey seçmiyoruz veya kaydetmiyoruz! Etiket boyutunu ayarlamayı denedim ancak yazıcı bir nedenden dolayı çalışmıyor. Etiket boyutu yazdırma işinde belirtilebilir.

      VMware Workstation'da Linux üzerinde XPrinter etiket yazıcısı kurma
      Bir test sayfası yazdırmaya çalışıyoruz - bitti!

    2. İkinci seçenek. Sambayı kurmanız, bardakları başlatmanız, yeniden başlatmanız gerekiyor, ardından bardaklarda yeni bir bağlantı noktası görünecek, ayarlara smb://user gibi bir satır girin:[e-posta korumalı]/Xprinter_XP-460B. Kullanıcının Windows'ta bir kullanıcı olduğu durumlarda, kullanıcının bir parola seti olması gerekir, boş bir parola ile yetkilendirme çalışmaz.

Her şey yolunda gittiğinde ve yazıcı bir test sayfası yazdırdığında işler konsol aracılığıyla gönderilebilir:

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

Bu örnekte etiketin boyutları 100x100 mm olup deneysel olarak 2 mm seçilmiştir. Etiketler arasındaki mesafe 3 mm'dir ancak yüksekliği 103 mm'ye ayarlarsanız bant kayar ve etiketin yırtılması zahmetli hale gelir. LPD protokolünün dezavantajı işlerin normal bir yazıcıya gönderildiği gibi gönderilmesi, ESC/P0S formatının yazdırma için gönderilmemesi ve sensörün etiketleri kalibre etmemesidir.

Daha sonra yazıcıyla php aracılığıyla çalışabilirsiniz. Bardaklarla çalışmak için kütüphaneler var, exec() aracılığıyla konsola komut göndermek benim için daha kolay;

ESC/P0S çalışmadığı için tFPDF kütüphanesini kullanarak pdf formatında şablonlar yapmaya karar verdim.

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

VMware Workstation'da Linux üzerinde XPrinter etiket yazıcısı kurma
Hazır. Kurulumu yapmak için 2 hafta sonumu harcadım, umarım bu birisi için faydalı olur.

Kaynak: habr.com

Yorum ekle