在 VMware Workstation 中的 Linux 上配置 XPrinter 標籤打印機

在沒有圖形 shell 的 CentOS 中進行設置的示例;以此類推,您可以在任何 Linux 操作系統上進行設置。

我解決了一個特定的問題,從 php 我需要根據模板打印帶有任意文本的標籤。 由於該活動無法依賴穩定的互聯網,並且大部分自動化任務與網站重疊,因此我們決定使用 VMware 上的虛擬機。

XPrinter也適合標記任務,在Windows下安裝要容易得多。 我選擇了 XP-460B 型號,其標籤寬度可達 108 毫米。

在 VMware Workstation 中的 Linux 上配置 XPrinter 標籤打印機

由於我很少設置 Linux 並將設備連接到它,所以我一直在尋找現成的設置手冊,我意識到連接打印機最簡單的方法是通過 cups。 我無法通過 USB 連接打印機,對手冊中的建議進行操作也沒有幫助,我只是破壞了虛擬機幾次。

  • 我們從製造商的網站 xprintertech.com 下載驅動程序,它們位於一個適用於 Windows、Mac 和 Linux 的存檔中

    就我而言,網站上發布了一系列設備的驅動程序 4 英寸標籤打印機驅動程序。 事實證明,XP-460B 已經停產了,我根據類似 XP-470B 型號的麵包屑找出了它屬於哪個系列。

  • 在windows下安裝打印機,啟用共享

    在 VMware Workstation 中的 Linux 上配置 XPrinter 標籤打印機

  • 對於 Linux,存檔包含 1 個文件 4BARCODE。 這是一個 2 合 1 文件,是一個帶有 tar 存檔的 bash 腳本,可以自行解壓並將驅動程序複製到 cups 中。 就我而言,解壓需要 bzip2(對於 80 mm 系列,使用不同的存檔器)
    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和密碼)

    在 VMware Workstation 中的 Linux 上配置 XPrinter 標籤打印機

  • 我設法配置了 2 個選項,通過 LPD 協議和通過 samba。
    1. 要通過LPD協議連接,您需要在Windows中啟用該服務(打開或關閉Windows功能),重新啟動計算機。

      在 VMware Workstation 中的 Linux 上配置 XPrinter 標籤打印機
      在cups設置中輸入lpd://192.168.1.52/Xprinter_XP-460B,其中192.168.1.52是安裝打印機的計算機的IP,Xprinter_XP-460B是windows共享設置中打印機的名稱

      在 VMware Workstation 中的 Linux 上配置 XPrinter 標籤打印機
      選擇驅動程序 4BARCODE => 4B-3064TA

      在 VMware Workstation 中的 Linux 上配置 XPrinter 標籤打印機
      我們不在參數中選擇任何內容,也不保存! 我嘗試調整標籤尺寸,但打印機由於某種原因無法工作。 可以在打印作業中設置標籤尺寸。

      在 VMware Workstation 中的 Linux 上配置 XPrinter 標籤打印機
      嘗試打印測試頁 - 完成!

    2. 第二個選擇。 你需要安裝samba,啟動,重啟cups,然後cups中會出現一個新的連接點,在設置中輸入一行如smb://user:[電子郵件保護]/Xprinter_XP-460B。 其中,user是windows下的用戶,該用戶必須有密碼,空密碼授權不通過。

當一切順利並且打印機打印了測試頁時,可以通過控制台發送作業:

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

本例中,標籤尺寸為100x100mm,實驗選擇2mm。 標籤之間的距離為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');

在 VMware Workstation 中的 Linux 上配置 XPrinter 標籤打印機
準備好。 我花了兩天時間來設置,我希望這對某人有用。

來源: www.habr.com

添加評論