ラベルプリンタメーカ「SATO」のラベル発行コンポーネント(MLComponent.dll)を使ったラベル印刷の 紹介ですが、まず最初にラベルプリンタの接続確認を行います。今回仕事で使ったプリンタがUSB接続でしたので 例としてUSBのみとなります。
■MLComponent.dllのインストール
以下のURLのページの真ん中あたりに「Multi LABELIST Component」のダウンロードファイルが在りますので、 必要なものをダウンロードし、インストールします。
・Multi LABELIST Component / Component Plus
デフォルトでインストールすると「MLComponent.dll」が「C:\Program Files\SATO\ML Component」に在るはずです。
VB.NETの参照設定で「MLComponent.dll」を追加します。
このコンポーネントですが、.NET Framework 4.0または4.5または4.6に対応している開発環境でしか使えないので Visual Studio 2010以降限定です。Visual Studio 2005/2008では使用できません。
■プリンタ状態チェック関数
関数内ではまず「MLComponent」のインスタンスを生成します。
その後「Setting」プロパティによって通信パラメータを設定します。 プリンタとの接続方法が、LAN、USB、RS232C、Bluetooth、プリンタドライバなどがありますが 今回はUSBですので、"USB:"の設定値となります。その他の設定はマニアルを見てください。
「Protocol」プロパティはUSBですので、「Protocols.Status4」となります。
その後、「OpenPort」メソッドにより接続を開始しますが、 結果が0ではない場合は、電源が入っていないかケーブルが抜けているかの原因になります。
接続後は、プリンタの状態を「GetStatus」メソッドにより行います。 返されるStatus文字列の3文字目にエラー判別文字がありますので、それによってメッセージを付けています。 尚、このメソッドが0以外を返す場合は、メソッドエラーになります。
=====
2016/03/08:の時の情報
■MLComponent.dllのインストール
以下のURLのページの真ん中あたりに「Multi LABELIST Component」のダウンロードファイルが在りますので、 必要なものをダウンロードし、インストールします。
・Multi LABELIST Component / Component Plus
デフォルトでインストールすると「MLComponent.dll」が「C:\Program Files\SATO\ML Component」に在るはずです。
VB.NETの参照設定で「MLComponent.dll」を追加します。
このコンポーネントですが、.NET Framework 4.0または4.5または4.6に対応している開発環境でしか使えないので Visual Studio 2010以降限定です。Visual Studio 2005/2008では使用できません。
■プリンタ状態チェック関数
関数内ではまず「MLComponent」のインスタンスを生成します。
その後「Setting」プロパティによって通信パラメータを設定します。 プリンタとの接続方法が、LAN、USB、RS232C、Bluetooth、プリンタドライバなどがありますが 今回はUSBですので、"USB:"の設定値となります。その他の設定はマニアルを見てください。
「Protocol」プロパティはUSBですので、「Protocols.Status4」となります。
その後、「OpenPort」メソッドにより接続を開始しますが、 結果が0ではない場合は、電源が入っていないかケーブルが抜けているかの原因になります。
接続後は、プリンタの状態を「GetStatus」メソッドにより行います。 返されるStatus文字列の3文字目にエラー判別文字がありますので、それによってメッセージを付けています。 尚、このメソッドが0以外を返す場合は、メソッドエラーになります。
Module Module1 'SATOプリンタの接続テスト Public Sub Main() Dim str As String = "" Dim fChk As Boolean = CheckPrinter(str) MsgBox(str) End Sub ''' <summary>プリンタ状態チェック</summary> ''' <param name="strErr">エラーメッセージ</param> ''' <returns>状態結果(True:OK, False:NG)</returns> Private Function CheckPrinter(ByRef strErr As String) As Boolean '戻り値初期化 CheckPrinter = False 'MLComponentの宣言 Dim MLComponent As SATO.MLComponent.MLComponent = New SATO.MLComponent.MLComponent Try '出⼒先の設定(USBを指定します。) MLComponent.Setting = "USB:" MLComponent.Protocol = SATO.MLComponent.Protocols.Status4 '接続 Dim Result As Integer = MLComponent.OpenPort(1) If Result <> 0 Then strErr = "プリンタの電源等(ケーブル)を確認してください。(" & Result.ToString & ")" Exit Function End If 'プリンタの状態確認 Dim Status As String = "" Result = MLComponent.GetStatus(Status) ' ステータス取得 If Result <> 0 Then strErr = "プリンタ状態取得エラー No." & Result.ToString Exit Function End If 'エラーコードの確認 Dim strCode As String = Mid$(Status, 3, 1) Select Case strCode Case "0", "1", "2", "3" strErr = "オフライン状態" Case "A", "B", "G", "H", "M", "N", "S", "T" 'オンライン状態・送信可 strErr = "" Case "C", "D" strErr = "オンライン状態・受信待ち" Case "I", "J" strErr = "オンライン状態・印字中" Case "O", "P" strErr = "オンライン状態・待機中" Case "U", "V" strErr = "オンライン状態・解析・編集中" Case "a" strErr = "エラー検出・受信バッファフル" Case "b" strErr = "エラー検出・ヘッドオープン" Case "c" strErr = "エラー検出・ペーパーエンド" Case "d" strErr = "エラー検出・リボンエンド" Case "e" strErr = "エラー検出・メディアエラー" Case "f" strErr = "エラー検出・センサーエラー" Case "g" strErr = "エラー検出・ヘッドエラー" Case "h" strErr = "エラー検出・カバーオープン" Case "i" strErr = "エラー検出・カードエラー" Case "j" strErr = "エラー検出・カッタエラー" Case "k" strErr = "エラー検出・その他のエラー" Case "l" strErr = "エラー検出・カッタセンサーエラー" Case "m" strErr = "エラー検出・スタッカフル&リファインダフル" Case "o" strErr = "エラー検出・IC タグエラー" Case Else strErr = "その他" End Select If strErr = "" Then strErr = "接続正常" CheckPrinter = True Else 'エラー strErr = "プリンタエラー:(" & strCode & ") " & strErr End If '切断 Result = MLComponent.ClosePort If Result <> 0 Then strErr = "切断エラー No." & Result.ToString CheckPrinter = False End If Catch ex As Exception strErr = "PGエラー:" & ex.ToString Finally MLComponent = Nothing End Try End Function End Module
=====
2016/03/08:の時の情報
PR
コメント