忍者ブログ

VB.NET-TIPS などプログラミングについて

VB.NETのTIPS(小技集)を中心に、Javascript、PHP その他のプログラミングについて少し役に立つ情報を発信します。いわゆる個人的な忘備録ですが、みなさんのお役に立てれば幸いです。

VB.NET:SATOラベルプリンタ・Multi LABELIST Component(MLComponent.dll)を使った印刷:レイアウトファイル・プリンタドライバを使用
ラベルプリンタメーカ「SATO」のラベル発行コンポーネント(MLComponent.dll)を使ったラベル印刷の紹介ですが、 レイアウトファイルとプリンタドライバを利用して行います。 USBへの直接出力もできるようですが、制御が難しい様なので、プリンタドライバへの出力で印刷します。

■印刷用レイアウトファイル

ラベル印刷を簡単に行うにはレイアウトファイルが必要になります。 このレイアウトファイルですがSATOが提供する「SATO Multi LABELIST V5 [MLデザイン]」で作成します。 Trail(試用)のままでも1個のファイルは生成が可能ですので、以下のURLからダウンロードしてみてください。

Multi LABELIST V5

今回使用するレイアウトファイルの編集中の画面を以下に示します。 連番(NO)、日付、品番、QRコードのみを印刷する簡単なレイアウトで、デザインを作成したところです。
<ML-Layout.png>
また、下図は印刷の定義順の設定の画面です。
定義順は1:連番(NO)、2:日付、3:品番、4:QRコード となっています。
実際のプログラムでのデータ設定の順番は、定義順に行います。
<ML-Layout-2.png>


■プリンタ状態チェック関数

関数内の処理は以下の手順で行います。

(1)「MLComponent」のインスタンスを生成します。

(2)レイアウトファイルの設定
 「MLComponent」の「LayoutFile」プロパティに、[MLデザイン]で作成されたレイアウトファイルを設定します。

(3)印刷データの設定
 「MLComponent」の「PrnData」プロパティに、印刷データを設定します。
 印刷データは印刷定義順に従って、各データを「タブ」文字を挟んで文字列で連結します。
 最後に「印刷枚数」をさらに「タブ」文字を挟んで追加連結します。(今回は1枚なので"1"を連結)

(4)出力先の設定
 「MLComponent」の「Setting」プロパティに、プリンタドライバ名を指定します。 (今回は「Lesprit412v」プリンタなので"DRV:SATO Lesprit412v")

(5)接続処理
 「MLComponent」の「OpenPort」メソッドで接続します。

(6)発行処理
 「MLComponent」の「Output」メソッドでラベル印刷の発行を行います。

(7)切断処理
 「MLComponent」の「ClosePort」メソッドで切断します。

Module Module1
    'SATOプリンタの印刷テスト
    Public Sub Main()
        Dim str As String = ""
        Dim fChk As Boolean = PrintLabel(1, "10001", str)
        MsgBox(str)
    End Sub

    ''' <summary>ラベル印刷</summary>
    ''' <param name="nNo">NO</param>
    ''' <param name="strHinban">品番</param>
    ''' <returns>印刷結果(True:OK, False:NG)</returns>
    Private Function PrintLabel(ByVal nNo As Integer, _
                                ByVal strHinban As String,
                                ByRef strErr As String) As Boolean
        '戻り値初期化
        PrintLabel = False
        'MLComponentの宣言
        Dim MLComponent As SATO.MLComponent.MLComponent = New SATO.MLComponent.MLComponent
        Try
            'レイアウトファイルの設定
            MLComponent.LayoutFile = "Layout.mllayx"

            '設定データ生成
            Dim strData As String = ""    'ヘッダ
            strData &= nNo.ToString("00000000")           'NO
            strData &= vbTab & Now.ToString("yyyy/MM/dd") '日付
            strData &= vbTab & strHinban                  '品番

            'QRバーコードデータ(NO,日付,日付を設定)
            Dim strQR As String = ""
            strQR = "NO=" & nNo.ToString("00000000")        'NO
            strQR &= ",DATE=" & Now.ToString("yyyy/MM/dd")  '日付
            strQR &= ",HIN=" & strHinban                    '日付
            'QRバーコードデータを設定データに付加
            strData &= vbTab & strQR
            '発行枚数を設定データに付加
            strData &= vbTab & "1"
            'データの設定
            MLComponent.PrnData = strData
            '出力先の設定(プリンタドライバ名を指定します。)
            MLComponent.Setting = "DRV:SATO Lesprit412v"
            '接続
            Dim Result As Integer
            Result = MLComponent.OpenPort(1)
            If Result <> 0 Then
                strErr = "接続エラー No." & Result.ToString
                Exit Function
            End If
            '発行
            Result = MLComponent.Output
            If Result <> 0 Then
                strErr = "発行エラー No." & Result.ToString
                Exit Function
            End If
            '切断
            Result = MLComponent.ClosePort
            If Result <> 0 Then
                strErr = "切断エラー No." & Result.ToString
                Exit Function
            End If
            '戻り値OK
            PrintLabel = True
        Catch ex As Exception
            strErr = "その他エラー :" & ex.ToString
        Finally
            MLComponent = Nothing
        End Try
    End Function
End Module


■プリンタドライバ

プリンタドライバのプロパティでUSBでの接続にしてあります。
プリンタドライバは以下のURLでダウンロードできます。

プリンタドライバ・マニュアル




=====
2016/03/09:の時の情報











PR

コメント

コメントを書く