Menyediakan pencetak label XPrinter pada Linux dalam VMware Workstation

Contoh untuk menyediakan pada CentOS tanpa cangkerang grafik; dengan analogi, anda boleh menyediakan pada mana-mana OS Linux.

Saya sedang menyelesaikan masalah tertentu: Saya perlu mencetak label dengan teks sewenang-wenangnya menggunakan templat daripada PHP. Memandangkan anda tidak boleh mengharapkan sambungan Internet yang stabil pada acara itu, dan kebanyakan tugas automasi bertindih dengan tapak web, kami memutuskan untuk bekerja dengan mesin maya pada VMware.

XPrinter juga sesuai untuk menandakan tugas; pemasangan di bawah Windows adalah lebih mudah. Saya menggunakan model XP-460B dengan lebar label sehingga 108 mm.

Menyediakan pencetak label XPrinter pada Linux dalam VMware Workstation

Memandangkan saya jarang menyediakan Linux dan menyambungkan peranti kepadanya, saya mencari manual persediaan siap dan menyedari bahawa cara paling mudah untuk menyambungkan pencetak adalah melalui cawan. Saya tidak dapat menyambungkan pencetak melalui USB, tiada manipulasi mengikut nasihat dalam manual membantu, saya hanya merempuh mesin maya beberapa kali.

  • Muat turun pemacu dari tapak web pengilang xprintertech.com, ia datang dalam satu arkib untuk Windows, Mac dan Linux

    Pemacu disiarkan di tapak web untuk satu siri peranti, dalam kes saya Pemacu Pencetak Label 4 inci. Ternyata, XP-460B telah pun dihentikan; Saya mengetahui siri mana yang dimiliki berdasarkan serbuk roti model serupa, XP-470B.

  • Pasang pencetak dalam Windows, dayakan perkongsian

    Menyediakan pencetak label XPrinter pada Linux dalam VMware Workstation

  • Untuk Linux, arkib mengandungi 1 fail 4BARCODE. Ini ialah fail "2 dalam 1", skrip bash dengan arkib tar yang membongkar sendiri dan menyalin pemacu ke cawan. Dalam kes saya, bzip2 diperlukan untuk membongkar (untuk siri 80 mm pengarkib yang berbeza digunakan)
    yum install cups
    yum install bzip2
    chmod 744 ./4BARCODE
    sh ./4BARCODE
    service cups start
    
  • Seterusnya anda perlu membuka localhost:631 dalam penyemak imbas, untuk kemudahan saya membuat tetapan untuk membuka dari penyemak imbas dalam Windows. Edit /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 pada firewall (atau iptables):

    firewall-cmd --zone=public --add-port=631/tcp --permanent
    firewall-cmd --reload
    
  • Kami membuka pautan dalam penyemak imbas menggunakan IP mesin maya, dalam kes saya 192.168.1.5:631/admin

    Tambahkan pencetak (anda perlu memasukkan akar dan kata laluan)

    Menyediakan pencetak label XPrinter pada Linux dalam VMware Workstation

  • Terdapat 2 pilihan yang saya berjaya konfigurasikan, melalui protokol LPD dan melalui samba.
    1. Untuk menyambung melalui protokol LPD, anda perlu mendayakan perkhidmatan dalam tingkap (Hidupkan atau matikan komponen Windows) dan mulakan semula komputer.

      Menyediakan pencetak label XPrinter pada Linux dalam VMware Workstation
      Dalam tetapan cawan, masukkan lpd://192.168.1.52/Xprinter_XP-460B, dengan 192.168.1.52 ialah IP komputer di mana pencetak dipasang, Xprinter_XP-460B ialah nama pencetak dalam tetapan perkongsian tingkap

      Menyediakan pencetak label XPrinter pada Linux dalam VMware Workstation
      Pilih pemandu 4BARCODE => 4B-3064TA

      Menyediakan pencetak label XPrinter pada Linux dalam VMware Workstation
      Kami tidak memilih atau menyimpan apa-apa dalam parameter! Saya cuba melaraskan saiz label, tetapi kemudian pencetak tidak berfungsi atas sebab tertentu. Saiz label boleh ditentukan dalam kerja cetakan.

      Menyediakan pencetak label XPrinter pada Linux dalam VMware Workstation
      Kami cuba mencetak halaman ujian - selesai!

    2. Pilihan kedua. Anda perlu memasang samba, mulakan, mulakan semula cawan, maka titik sambungan baharu akan muncul dalam cawan, dalam tetapan masukkan baris seperti smb://user:[e-mel dilindungi]/Xprinter_XP-460B. Di mana, pengguna adalah pengguna dalam Windows, pengguna mesti mempunyai set kata laluan, kebenaran tidak berfungsi dengan yang kosong.

Apabila semuanya berjaya dan pencetak mencetak halaman ujian, kerja boleh dihantar melalui konsol:

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

Dalam contoh ini, label mempunyai dimensi 100x100 mm, 2 mm telah dipilih secara eksperimen. Jarak antara label ialah 3 mm, tetapi jika anda menetapkan ketinggian kepada 103 mm, pita berubah, menjadikannya menyusahkan untuk merobek label. Kelemahan protokol LPD ialah tugas dihantar ke pencetak biasa, format ESC/P0S tidak dihantar untuk pencetakan, dan penderia tidak menentukur label.

Kemudian anda boleh bekerja dengan pencetak melalui php. Terdapat perpustakaan untuk bekerja dengan cawan, lebih mudah bagi saya untuk menghantar arahan ke konsol melalui exec();

Oleh kerana ESC/P0S tidak berfungsi, saya memutuskan untuk membuat templat 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');

Menyediakan pencetak label XPrinter pada Linux dalam VMware Workstation
sedia. Saya menghabiskan 2 hujung minggu untuk menyediakannya, saya harap ini akan berguna kepada seseorang.

Sumber: www.habr.com

Tambah komen