よくあるご質問(FAQ)

製品別
質問別

URLをクリップボードにコピーしました
シェア用URL:https://faq2.epson.jp/web/Detail.aspx?id=31162
  FAQ番号:31162
ラベル紙・ブラックマーク紙の印刷方法<EPSON OPOS ADK .NET版 シリーズ>
ラベル紙・ブラックマーク紙へ印刷する方法を教えてください。
 
 

EPSON OPOS ADK for .NET からラベル紙・ブラックマーク紙の印刷をおこなうには、MarkFeedメソッドを使用します。
そのためには「SetupPOSユーティリティ」の設定とプログラムの作成・実行をおこなう必要があります。

「SetupPOSユーティリティ」によって TM-L90 に搭載している用紙種別を設定します。
※ここでは「SetupPOSユーティリティ」による「デバイス設定の追加」がおこなわれていることを前提として説明します。

 
  1. [EPSON] → [PosPrinter] を展開し、ラベル印刷をおこなうデバイスを選択します。
    ※論理デバイス名で表示されます。

  2. [デバイス設定] タブを選択します。

  3. メニューの [変更] ボタンを選択します。

  4. [レシート用紙種類] リストボックスからデバイスに搭載している用紙種類を選択します。
    ※[普通紙] を選択した場合、MarkFeed メソッドは実行できません。

  5. 左上の [保存] ボタンを押します。

    上記手順の用紙選択によって [ラベル紙] または [ブラックマーク紙] をえらぶと 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 ピーラーモデル
FAQ改善アンケート

このページの評価をお聞かせください。〇✖をお選びください。

 

■役に立った
■役に立たなかった