|
-
-
TMプリンターには、プリンター内部に用紙が無い、用紙残量が少ない状態などを判別する機構が搭載されています。
ハードウェアの仕様上、TM-T20, TM-T20II , TM-m30 , TM-m10 は用紙エンドを検出できますが、用紙ニアエンドは検出できません。
TMプリンターにて、用紙エンド検出または、用紙ニアエンド検出が判別されたとき、プリンターは状態の変化(ステータス)を通知します。
プログラムの開発環境にて EPSON Advanced Printer Driver のステータスを取得するには、Status API をご利用ください。
「Status API」機能は、EPSON Advanced Printer Driver のプリンタードライバーと同時にインストールされます。
.NET 開発環境で使用される場合はこちらをご覧ください。
用紙切れ状態の取得方法 ( C# )
Status API で用紙切れの状態を確認するには、ステータス値 ASB_RECEIPT_NEAR_END (用紙残量が少ない) / ASB_RECEIPT_END (用紙が無い) を使用します。
using com.epson.pos.driver;
class PaperCheckSample
{
private string PRINTER_NAME = "EPSON TM-T88V Receipt"; // プリンター名
private StatusAPI sAPI;
//ステータス監視の開始
private void Start()
{
sAPI = new StatusAPI();
//通知された ASB ステータスを処理するイベントハンドラーへの参照
sAPI.StatusCallback += new StatusAPI.StatusCallbackHandler(Monitor);
if (sAPI.OpenMonPrinter(OpenType.TYPE_PRINTER, PRINTER_NAME) == ErrorCode.SUCCESS)
{
//StatusCallback イベントによる自動ステータス通知を開始
if (sAPI.SetStatusBack() != ErrorCode.SUCCESS)
{
//自動ステータス通知の開始失敗
}
} else {
// プリンターのオープン失敗
}
}
//ステータス監視の処理(イベントハンドラーメソッド)
private void Monitor(ASB dStats)
{
if (dStats.ToString().Contains(ASB.ASB_RECEIPT_NEAR_END.ToString()))
{
//用紙残量が少ない
}
if (dStats.ToString().Contains(ASB.ASB_RECEIPT_END.ToString()))
{
//用紙が無い
}
}
//ステータス監視の終了
private void End()
{
if (sAPI.CancelStatusBack() == ErrorCode.SUCCESS)
{
if (sAPI.CloseMonPrinter() != ErrorCode.SUCCESS)
{
//クローズ失敗
}
} else {
// ステータス通知の終了失敗
}
}
}
モバイルプリンター |
TM-P20,TM-P60II |
PC一体型プリンター |
TM-T70II-DT,TM-T88V-DT |
TMシリーズ |
TM-H5000II,TM-H6000II,TM-H6000III,TM-H6000IV,TM-J2000,TM-J2100,TM-L60II,TM-L90 オートカッターモデル,TM-L90 ピーラーモデル,TM-T20,TM-T20II,TM-T285,TM-T70,TM-T70II,TM-T88III,TM-T88IV,TM-T88V,TM-T90,TM-T90 KP,TM-T90II,TM-U220A,TM-U220B,TM-U220D,TM-U295,TM-U590,TM-U675,TM-U950,TM-m10,TM-m30 |
|