URLをクリップボードにコピーしました
シェア用URL:https://faq2.epson.jp/web/Detail.aspx?id=31162
|
最終更新日 2017/10/27 |
FAQ番号:31162 |
|
ラベル紙・ブラックマーク紙の印刷方法<EPSON OPOS ADK .NET版 シリーズ>
|
|
ラベル紙・ブラックマーク紙へ印刷する方法を教えてください。
|
|
-
-
EPSON OPOS ADK for .NET からラベル紙・ブラックマーク紙の印刷をおこなうには、MarkFeedメソッドを使用します。
そのためには「SetupPOSユーティリティ」の設定とプログラムの作成・実行をおこなう必要があります。
「SetupPOSユーティリティ」によって TM-L90 に搭載している用紙種別を設定します。
※ここでは「SetupPOSユーティリティ」による「デバイス設定の追加」がおこなわれていることを前提として説明します。
- [EPSON] → [PosPrinter] を展開し、ラベル印刷をおこなうデバイスを選択します。
※論理デバイス名で表示されます。
- [デバイス設定] タブを選択します。
- メニューの [変更] ボタンを選択します。
- [レシート用紙種類] リストボックスからデバイスに搭載している用紙種類を選択します。
※[普通紙] を選択した場合、MarkFeed メソッドは実行できません。
- 左上の [保存] ボタンを押します。
上記手順の用紙選択によって [ラベル紙] または [ブラックマーク紙] をえらぶと MarkFeed メソッドが使用できます。
PosPrinter.MarkFeed メソッド
名前空間:Microsoft.PointOfService
形式:LONG MarkFeed (LONG Type);
Type パラメータに指定する値によって、用紙の紙送り(フィード)動作が異なります。
値 |
動作 |
PrinterMarkFeeds.Takeup |
手動でラベル用紙が剥がせる(ブラックマーク付き用紙を切り取れる)位置までフィードされます。
※ピーラーモデルの剥離発行モードで実行した場合、ラベル紙除去待ち状態となります。 |
PrinterMarkFeeds.Cutter |
ラベル用紙またはブラックマーク付き用紙をオートカッターによって切り離すことができる位置までフィードされます。
※ピーラーモデルでは無効な値です。 |
PrinterMarkFeeds.CurrentTopOfForm |
現在のラベル用紙またはブラックマーク付き用紙の先頭位置までフィードします。 |
PrinterMarkFeeds.NextTopOfForm |
次のラベル用紙またはブラックマーク付き用紙の先頭位置までフィードします。 |
これらの動作を組み合わせることで、ラベル用紙、ブラックマーク付きレシート用紙に印刷をおこなえます。
ラベル紙・ブラックマーク紙を印刷するコード例を下記に記載します。
※一部抜粋のため、このまま使用できるコードではありません。
例)Visual Basic .NET の場合
Imports Microsoft.PointOfService
'プリンターオブジェクト
Private m_Printer As Microsoft.PointOfService.PosPrinter = Nothing
''' サービスを使用できるようにするための初期化処理を実行します。
Private Sub Form_Load(ByVal sender As System.Object _
, ByVal e As System.EventArgs) Handles MyBase.Load
'SetupPOSで使用するデバイスに設定した論理デバイス名を使用します。
Dim strLogicalName As String
Dim deviceInfo As DeviceInfo
Dim posExplorer As PosExplorer
strLogicalName = "PosPrinter"
'PosExplorerを生成します。
posExplorer = New PosExplorer
m_Printer = Nothing
deviceInfo = posExplorer.GetDevice(DeviceType.PosPrinter, strLogicalName)
m_Printer = posExplorer.CreateInstance(deviceInfo)
'デバイスをオープンします。
m_Printer.Open()
'オープンしたデバイスの排他権を得ます。
'これにより他のアプリケーションからこのデバイスは使用できなくなります。
m_Printer.Claim(1000)
'デバイスを使用可能(動作できる状態)にします。
m_Printer.DeviceEnabled = True
End Sub
''' 「終了」時、以下の処理を実行します。
Private Sub Form_Closing(ByVal sender As Object _
, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
'デバイスを停止します。
m_Printer.DeviceEnabled = False
'デバイスの使用権を解除します。
m_Printer.Release()
'デバイスの使用を終了します。
m_Printer.Close()
End Sub
''' 「印字」ボタンを押下時、
''' 以下の処理を実行します。
Private Sub btnPrint_Click(ByVal sender As System.Object _
, ByVal e As System.EventArgs) Handles btnPrint.Click
'印刷枚数の指定
Dim MaxPage As Integer = 10
'非同期モードに入ります。
m_Printer.AsyncMode = True
'一括処理モードに入ります。
'(次のTransactionPrintまでバッファリングされます。)
m_Printer.TransactionPrint(PrinterStation.Receipt _
, PrinterTransactionControl.Transaction)
'ラベルの頭だし処理
m_Printer.MarkFeed(PrinterMarkFeeds.CurrentTopOfForm)
For page As Integer = 1 To MaxPage
'文字列を印刷する為にPrintNormalメソッドを使用します。
'[vbCrLf] は標準改行コードです。
m_Printer.PrintNormal(PrinterStation.Receipt, "Hello OPOS for .Net" + vbCrLf)
m_Printer.PrintNormal(PrinterStation.Receipt, "Line2" + vbCrLf)
m_Printer.PrintNormal(PrinterStation.Receipt, "Line3" + vbCrLf)
m_Printer.PrintNormal(PrinterStation.Receipt, "Page" + page.ToString() + vbCrLf)
'次ラベルの為の頭だし処理を行う
If page <> MaxPage Then
m_Printer.MarkFeed(PrinterMarkFeeds.NextTopOfForm)
End If
Next page
'カット位置(ラベル同士の間)にくるように紙送り
m_Printer.MarkFeed(PrinterMarkFeeds.Cutter)
'用紙カット
m_Printer.CutPaper(100)
'バッファリングされた処理データを全て印字し、一括処理モードを抜けます。
m_Printer.TransactionPrint(PrinterStation.Receipt _
, PrinterTransactionControl.Normal)
'非同期モードを終了します。
m_Printer.AsyncMode = False
End Sub
|
プリンタードライバーにサンプルプログラムが付属しています。
簡易に開発環境からの制御を試したい場合には、サンプルプログラムをお使いください。
モバイルプリンター |
TM-P60II |
TMシリーズ |
TM-L90 オートカッターモデル,TM-L90 ピーラーモデル |
|