Linux 上の VMware Workstation での XPrinter ラベル プリンタの構成

グラフィカル シェルを使用せずに CentOS でセットアップする例ですが、同様に、どの Linux OS でもセットアップできます。

私は特定の問題を解決します。phpから、テンプレートに従って任意のテキストを含むラベルを印刷する必要があります。 イベントは安定したインターネットに依存できず、自動化タスクのほとんどが Web サイトと重複するため、VMware 上の仮想マシンを使用して作業することにしました。

XPrinter はタスクのマーキングにも適しており、Windows にインストールする方がはるかに簡単です。 ラベル幅460mmまでのXP-108Bというモデルに落ち着きました。

Linux 上の VMware Workstation での XPrinter ラベル プリンタの構成

Linux をセットアップしてデバイスを Linux に接続することはめったにないので、既製のセットアップ マニュアルを探していたところ、プリンターを接続する最も簡単な方法はカップを使用する方法であることに気付きました。 USB 経由でプリンタに接続できず、マニュアルのアドバイスに従って操作しても役に立ちませんでした。仮想マシンを何度か壊してしまいました。

  • ドライバーはメーカーの Web サイト xprintertech.com からダウンロードします。ドライバーは Windows、Mac、Linux 用の XNUMX つのアーカイブで提供されます。

    私の場合、ドライバーは一連のデバイスのサイトに掲載されています。 4インチラベルプリンタードライバー。 結局のところ、XP-460B はすでに生産中止になっているため、XP-470B の類似モデルのパンくずリストに基づいて、どのシリーズに属するかを調べました。

  • Windowsにプリンターをインストールし、共有を有効にします

    Linux 上の VMware Workstation での XPrinter ラベル プリンタの構成

  • Linux の場合、アーカイブには 1BARCODE という 4 つのファイルが含まれます。 これは 2 in 1 ファイルであり、tar アーカイブを含む bash スクリプトであり、それ自体を解凍してドライバーをカップにコピーします。 私の場合、解凍にはbzip2が必要です(80mmシリーズの場合は別のアーカイバを使用します)
    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 とパスワードを入力する必要があります)

    Linux 上の VMware Workstation での XPrinter ラベル プリンタの構成

  • 私が設定できたオプションは 2 つあり、LPD プロトコル経由と samba 経由です。
    1. LPD プロトコル経由で接続するには、Windows でサービスを有効にし (Windows の機能をオンまたはオフにして)、コンピューターを再起動する必要があります。

      Linux 上の VMware Workstation での XPrinter ラベル プリンタの構成
      カップ設定で、「lpd://192.168.1.52/Xprinter_XP-460B」と入力します。ここで、192.168.1.52 はプリンタがインストールされているコンピュータの IP で、Xprinter_XP-460B は Windows 共有設定のプリンタの名前です。

      Linux 上の VMware Workstation での XPrinter ラベル プリンタの構成
      ドライバーを選択 4BARCODE => 4B-3064TA

      Linux 上の VMware Workstation での XPrinter ラベル プリンタの構成
      パラメータでは何も選択せず、保存もしません。 ラベルサイズを調整しようとしましたが、何らかの理由でプリンターが動作しません。 ラベルのサイズは印刷ジョブで設定できます。

      Linux 上の VMware Workstation での XPrinter ラベル プリンタの構成
      テスト ページを印刷しようとしました - 完了しました。

    2. XNUMX 番目のオプション。 samba をインストールし、開始し、cups を再起動する必要があります。そうすると、cups に新しい接続ポイントが表示されます。設定に smb://user のような行を入力します。[メール保護]/Xprinter_XP-460B。 ここで、 user は Windows のユーザーであり、ユーザーにはパスワードが必要です。パスワードが空の場合、認証は通過しません。

すべてがうまくいき、プリンターがテスト ページを印刷すると、コンソール経由でジョブを送信できます。

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

この例では、ラベルの寸法は 100x100 mm で、実験的に 2 mm が選択されています。 ラベル間隔は3mmですが、高さを103mmにするとテープがズレてしまい、ラベルを剥がすのに不便です。 LPD プロトコルの欠点は、ジョブが通常のプリンターに送信され、印刷用に ESC / P0S 形式が送信されず、センサーがラベルを調整しないことです。

その後、php を通じてプリンターを操作できるようになります。 カップを操作するためのライブラリがあり、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');

Linux 上の VMware Workstation での XPrinter ラベル プリンタの構成
準備ができて。 2日の休日を費やしてセットアップしました。誰かの役に立てば幸いです。

出所: habr.com

コメントを追加します