Menyiapkan printer label XPrinter di Linux di VMware Workstation

Contoh pengaturan di CentOS tanpa shell grafis; dengan analogi, Anda dapat mengatur di OS Linux apa pun.

Saya memecahkan masalah tertentu: Saya perlu mencetak label dengan teks arbitrer menggunakan templat dari PHP. Karena Anda tidak dapat mengandalkan koneksi Internet yang stabil di acara tersebut, dan sebagian besar tugas otomatisasi tumpang tindih dengan situs web, kami memutuskan untuk bekerja dengan mesin virtual di VMware.

XPrinter juga cocok untuk menandai tugas; instalasi di Windows jauh lebih mudah. Saya memilih model XP-460B dengan lebar label hingga 108 mm.

Menyiapkan printer label XPrinter di Linux di VMware Workstation

Karena saya jarang mengatur Linux dan menghubungkan perangkat ke dalamnya, saya mencari manual pengaturan yang sudah jadi dan menyadari bahwa cara termudah untuk menghubungkan printer adalah melalui cup. Saya tidak dapat menghubungkan printer melalui USB, tidak ada manipulasi mengikuti saran dalam manual yang membantu, saya hanya membuat mesin virtual mogok beberapa kali.

  • Unduh driver dari situs web produsen xprintertech.com, driver tersebut hadir dalam satu arsip untuk Windows, Mac dan Linux

    Driver diposting di situs web untuk serangkaian perangkat, dalam kasus saya Driver Printer Label 4 inci. Ternyata, XP-460B sudah dihentikan produksinya, saya mengetahui seri mana yang dimilikinya berdasarkan remah roti dari model serupa, XP-470B.

  • Instal printer di Windows, aktifkan berbagi

    Menyiapkan printer label XPrinter di Linux di VMware Workstation

  • Untuk Linux, arsip berisi 1 file 4BARCODE. Ini adalah file β€œ2 in 1”, skrip bash dengan arsip tar yang membongkar dirinya sendiri dan menyalin driver ke cup. Dalam kasus saya, bzip2 diperlukan untuk membongkar (untuk seri 80 mm, pengarsip yang berbeda digunakan)
    yum install cups
    yum install bzip2
    chmod 744 ./4BARCODE
    sh ./4BARCODE
    service cups start
    
  • Selanjutnya Anda perlu membuka localhost:631 di browser, untuk kenyamanan saya membuat pengaturan untuk membuka dari browser di Windows. Sunting /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>
    

    Tambahkan port 631 ke firewall (atau iptables):

    firewall-cmd --zone=public --add-port=631/tcp --permanent
    firewall-cmd --reload
    
  • Kami membuka tautan di browser menggunakan IP mesin virtual, dalam kasus saya 192.168.1.5:631/admin

    Tambahkan printer (Anda harus memasukkan root dan kata sandi)

    Menyiapkan printer label XPrinter di Linux di VMware Workstation

  • Ada 2 pilihan yang berhasil saya konfigurasi, melalui protokol LPD dan melalui samba.
    1. Untuk terhubung melalui protokol LPD, Anda perlu mengaktifkan layanan di windows (Menghidupkan atau mematikan komponen Windows) dan me-restart komputer.

      Menyiapkan printer label XPrinter di Linux di VMware Workstation
      Pada pengaturan cup, masukkan lpd://192.168.1.52/Xprinter_XP-460B, dimana 192.168.1.52 adalah IP komputer yang diinstal printer, Xprinter_XP-460B adalah nama printer di pengaturan berbagi windows

      Menyiapkan printer label XPrinter di Linux di VMware Workstation
      Pilih driver 4BARCODE => 4B-3064TA

      Menyiapkan printer label XPrinter di Linux di VMware Workstation
      Kami tidak memilih atau menyimpan apa pun di parameter! Saya mencoba menyesuaikan ukuran label, namun printer tidak berfungsi karena alasan tertentu. Ukuran label dapat ditentukan dalam pekerjaan pencetakan.

      Menyiapkan printer label XPrinter di Linux di VMware Workstation
      Kami mencoba mencetak halaman uji - selesai!

    2. Pilihan kedua. Anda perlu menginstal samba, memulai, memulai ulang cup, kemudian titik koneksi baru akan muncul di cup, dalam pengaturan masukkan baris seperti smb://user:[email dilindungi]/Xprinter_XP-460B. Dimana, pengguna adalah pengguna di Windows, pengguna harus memiliki kata sandi yang ditetapkan, otorisasi tidak berfungsi dengan yang kosong.

Ketika semuanya berjalan lancar dan printer mencetak halaman pengujian, pekerjaan dapat dikirim melalui konsol:

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

Dalam contoh ini, label berukuran 100x100 mm, 2 mm dipilih secara eksperimental. Jarak antar label adalah 3 mm, tetapi jika Anda mengatur tingginya ke 103 mm, pita perekat akan bergeser sehingga sulit untuk merobek label. Kerugian dari protokol LPD adalah pekerjaan dikirim seperti ke printer biasa, format ESC/P0S tidak dikirim untuk dicetak, dan sensor tidak mengkalibrasi label.

Kemudian Anda dapat bekerja dengan printer melalui php. Ada perpustakaan untuk bekerja dengan cangkir, lebih mudah bagi saya untuk mengirim perintah ke konsol melalui exec();

Karena ESC/P0S tidak berfungsi, saya memutuskan untuk membuat template dalam pdf menggunakan perpustakaan 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');

Menyiapkan printer label XPrinter di Linux di VMware Workstation
Siap. Saya menghabiskan 2 akhir pekan untuk menyiapkannya, saya harap ini bermanfaat bagi seseorang.

Sumber: www.habr.com

Tambah komentar