パソコンレジを作ってみよう!


第4回 レシートプリンタに印刷してみよう

今回使用する機器

TSP643U

STAR TSP643Uはドロップイン方式で、
オートカッター内蔵で80mm用紙が使用できます。

1)インターフェースの種類

パソコンとプリンタを接続インターフェースには通常3種類あります。

・シリアルインターフェース(TSP643D)
・パラレルインターフェース(TSP643C)
・USBインターフェース(TSP643U)

今回は、現在主流になりつつあるUSBポートを搭載したプリンタの制御を行います。USBポートはUSBハブを利用することにより多くの機器を接続することが可能になりますがそれに伴って注意点もいくつか存在します。詳細は「USB接続機器についての情報」をご覧ください。

2)パソコンとプリンタの接続

さて、プリンタをパソコンに接続してみます。今回使用するTSP643U本体の背面にUSBポートがありますので直接USBケーブルを接続することができます。USBケーブルを接続する場合にはプリンタの電源を投入しない状態で行います。このときパソコンの電源を投入しておいても問題はありません。

※USBコネクタにはシリーズA、シリーズB及びシリーズ・ミニBが存在します。通常は以下のような利用目的で使用します。

USBコネクタ(シリーズA) PC側(ホストアダプタ側)のUSBコネクタ(アップストリーム)
USBコネクタ(シリーズB) 周辺機器側のUSBコネクタ(ダウンストリーム)
USBコネクタ(シリーズ・ミニB) 携帯機器向けに追加された小型のUSBコネクタ(ダウンストリーム)。「ミニB」と称するコネクタは何種類かあるが、USBの規格書にあるミニBコネクタはこれ1つだけだ

3)ドライバーのインストール

TSP643Uには数種類のドライバーが準備されています。使用するOSまたは環境によって選択してください。
推奨するドライバの種類

ここではスター・ラインモード・ドライバを利用します。

COMポート及びプリンターポートに接続する場合は自動インストールを行うことができますが、今回はUSBポートに接続していますので主導インストールとなります。インストールの詳細についてはドライバーに付属しているマニュアルを参照していただくことになりますが、手順としては以下のようになります。

  1. 入手したドライバーを解凍しておく。
  2. USBケーブルをプリンタとPCに接続する。
  3. プリンタの追加ウィザードが自動起動する。
  4. ドライバーが保存されている場所を指定する。

これでインストールは完了です。
テスト印字が正しく行えれば問題ありません。

4)プログラムの作成

今回は以下の環境を使ってプログラムを作成していきます。

  1. オペレーションシステム    Windows2000 Professional SP3&Hot fix適用
  2. 開発言語                      Microsoft Visual Basic Version6.0 SP5適用

注意:Microsoft Visual Studio .NET 若しくは .NET Frameworkがインストールされている環境では正常な開発及び実行ができない場合があります。Microsoft Visual Studio .NETを使用される場合は、今回のサンプルをVisual Basic .NETに置き換えてください。一部言語仕様が異なりますので注意して置き換えてください。

1.プリンターの指定

TSP643Uをデフォルトプリンターに指定していない場合は次の手順で指定することができます。
この場合CommonDialogBoxを使用しますのでフォームに貼り付けて置いてください。

Private Sub PrinterSet()
    With CommonDialog1
        .CancelError = True
        .Flags = cdlPDDisablePrintToFile Or cdlPDNoSelection
        .ShowPrinter
    End With
    If Err.Number = cdlCancel Then Exit Sub
   ' プリンタに情報を設定
    With Printer
        .Copies = CommonDialog1.Copies
        .Orientation = CommonDialog1.Orientation
    End With
End Sub

2.印刷処理

Printメソッドを利用することで簡単に印字することができます。一行の印刷が終わったら必ず改行(vbCrLf)を入れておきます。また、EndDocメソッドを実行した段階で自動的にレシートをフィードしカットしてくれます。
以下は簡単な手順です。

Private Sub PrintStart()
    Dim strCaption       As String
    With Printer
        .ForeColor = vbBlack
        .CurrentX = 0        ' 描画位置を設定
        .CurrentY = 0
        strCaption = "テスト印字" & vbCrLf
        Printer.Print strCaption;        ' 文字を描画
    End With
    Printer.EndDoc
End Sub

このままでは汎用性がありませんので、以下のように変更しておきます。

Private Sub PrintStart(Len as Integer,Data() as String)
    Dim strCaption       As String
    Dim i as Integer
    With Printer
        .ForeColor = vbBlack
        .CurrentX = 0        ' 描画位置を設定
        .CurrentY = 0
        For i = 1 to Len
        	strCaption = data(i) & vbCrLf
        Next
        Printer.Print strCaption;        ' 文字を描画
    End With
    Printer.EndDoc
End Sub

Visual Basicで開発している場合Printerオブジェクトを使うことは非常に稀なことだと思います。多くの場合Data Reportデザイナやその他市販のレポートツールを使っていることでしょう。しかし、ほとんどのツールがページを単位として印刷するためにレシートのような連続した用紙に印刷することを不得意としています。Printerオブジェクトは用紙の概念を無視して使用することができるためにレシートの印刷には適しています。但し、印字レイアウトなどをきっちり行う場合には不向きな面もありますので用途に合わせて利用してください。

今回作成したVisual Basicのプロジェクトファイルと実行モジュールを公開しています。
下記のリンクからダウンロードしてください。

サンプルプロジェクト

パソコンレジを作ってみよう! 第1回 キャッシュドロアーを制御してみよう  第2回 カスタマディスプレイを使ってみよう
第3回 レジキーボードってどうやって使うの? 第4回 レシートプリンタに印刷してみよう 第5回 バーコードスキャナを接続してみよう
第6回 レジソフトを作ってみよう(仕様作成編) 第7回 レジソフトを作ってみよう(データベース設計編) 第8回 レジソフトを作ってみよう(マスターメンテナンス編)
第9回 レジソフトを作ってみよう(レジ機能編) 第10回 タッチパネルに対応してみよう  

Last Update : 2011/09/09


戻る トップページへ ご注文方法について 更新情報 
 テクノベインズ株式会社 〒113-0034 東京都文京区湯島3丁目31-4 ツナシマ第1ビル2階 電話:03-3832-7460 (平日:09:00-17:30) FAX:03-3832-7430
Techno Veins Co.,Ltd. Tsunashima Daiichi Bldg 2F, 31-4, Yushima 3, Bunkyou, Tokyo, 1130034, JAPAN. Tel:+81 3-3832-7460 FAX:+81 3-3832-7430  sales@technoveins.co.jp (弊社地図)
©Copyright Techno Veins Co.,Ltd. 1987-2011. All rights Reserved.