設定 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吋標籤印表機驅動程式。原來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 新增至防火牆(或 iptables):

    firewall-cmd --zone=public --add-port=631/tcp --permanent
    firewall-cmd --reload
    
  • 在我的例子中,使用虛擬機的 IP 在瀏覽器中開啟鏈接 192.168.1.5:631/管理員

    新增印表機(需要輸入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:password@192.168.1.52/Xprinter_XP-460B 的一行。其中,user 是 Windows 中的用戶,該用戶必須有密碼,空密碼授權無效。

當一切正常且印表機列印測試頁時,可以透過控制台傳送作業:

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

本例中,標籤尺寸為 100x100 毫米,實驗中選定了 2 毫米。標籤間距為 3 毫米,但如果將高度設定為 103 毫米,標籤帶會偏移,撕下標籤會很不方便。 LPD 協定的缺點是,任務會像普通印表機一樣傳送,不會傳送 ESC/P0S 格式進行列印,感測器也不會校準標籤。

然後你就可以透過 php 操作印表機了。有一些庫可以用來操作 cups,對我來說,透過 exec() 向控制台發送命令更方便;

由於 ESC/P0S 不起作用,我決定透過 tFPDF 庫製作 pdf 模板

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 中
完成了。我花了兩個週末來設定它,希望這對大家有用。

來源: www.habr.com

為具有 DDoS 保護、VPS VDS 服務器的站點購買可靠的主機 🔥 購買具備 DDoS 防護的可靠網站寄存服務,包括 VPS 和 VDS 伺服器 | ProHoster