ロゴ:EPSON
ロゴ:よくあるご質問(FAQ)

製品別
質問別

URLをクリップボードにコピーしました
シェア用URL:https://faq2.epson.jp/web/Detail.aspx?id=31191
  FAQ番号:31191
OPOSでレシートに画像を印刷する方法<EPSON OPOS ADK OLE版 シリーズ>
OPOSで画像(イメージ、ビットマップ、ロゴ)をレシートに印刷する方法
 
 

画像を印字したい場合は、OPOS.POSPrinterオブジェクトの PrintBitmap, SetBitmap メソッドなどを実行します。
また、プリンター本体のNVRAM(不揮発性メモリー)に画像データを登録しておくと、高速に印字できます。

 

注意

本FAQはOPOSアプリケーションの開発者向けです。OPOSメソッドのコーディングについて紹介しています。

  1. PrintBitmapメソッドにてビットマップ画像を印刷
  2. SetBitmapメソッドにてビットマップ画像を登録後、PrintNormalメソッドで印刷
  3. NVRAM(不揮発性メモリー)に画像データを登録後、DirectIOメソッドで印刷

「RecLetterQuality」プロパティーは、印字品質を設定します。

 
  • RecLetterQuality = TRUE (レシートを高品質モードで印刷)
  • RecLetterQuality = FALSE (レシートを高速モードで印刷)

高品質モードでは高密度のグラフィックで画像が印刷され、高速モードでは低密度のグラフィックで印刷されます。
TM-T88IVやTM-T70などでは「RecLetterQuality = TRUE」で画像印刷を行うと原寸大の大きさで印刷しますが、「RecLetterQuality = FALSE」で画像の印刷を行うと低密度のため縦横2倍のサイズで印刷されます。
「RecLetterQuality」プロパティーの初期値は FALSE となっている為、明示的に TRUE を指定する必要があります。

 

PrintBitmapメソッドにてビットマップ画像を印刷

PrintBitmap メソッドは、印刷の度に画像ファイルを指定するので、毎回異なった画像を印刷したい場合に便利です。
ただし「ディスク上の画像データの呼び出し」および「TMプリンターが扱えるデータに変換」する作業を毎回行うために、その他の画像印刷方法に比べ印刷速度が低速です。

Visual Basic 6.0

'レシート部に画像ファイル(BitmapFilename)を幅(Width)に縮小/拡大し、
'PTR_BM_CENTER(中央)に配置して、印刷します
With OPOSPOSPrinter1
    .PrintBitmap PTR_S_RECEIPT, BitmapFilename, Width, PTR_BM_CENTER
End With
 

SetBitmapメソッドにてビットマップ画像を登録後、PrintNormalメソッドで印刷

SetBitmap メソッドを利用することで、時間の掛かる「ディスク上の画像データの呼び出し」や 「TMプリンターが扱えるデータに変換」する作業をあらかじめ済ませることができます。
「TMプリンターが扱えるデータに変換された印刷データ」は、TMプリンター本体のメモリー上に登録されます。
(登録には多少時間が掛かります。/登録できる画像数は2つまでです。)

 

PrintNormal メソッドでエスケープシーケンス文字(ESC|1B)を印字するよう命令すると、TMプリンター本体に登録された画像を印字することができます。
TMプリンター本体のメモリーから画像データを呼び出しているために、高速な印字が可能です。

 

ただし、Close メソッドの実行やプリンターの電源をOFFにすることにより、メモリーに登録された画像データは削除されてしまいます。
次の Open メソッド実行時などに改めて画像データの登録を行う必要があります。

Visual Basic 6.0

' 予め画像データをTMプリンターのメモリー(RAM)上に登録しておきます
With OPOSPOSPrinter1
    'レシート部に画像ファイル(BitmapFilename)を幅(Width)に縮小/拡大し、
    'PTR_BM_CENTER(中央)に配置して、メモリー(RAM)上に登録しておきます
    .SetBitmap 1, PTR_S_RECEIPT, BitmapFilename, Width, PTR_BM_CENTER
End With
' 実際に画像を印字するコード
ESC = Chr(&h1B)
With OPOSPOSPrinter1
    'メモリー(RAM)上に登録された画像を印刷します。
    .PrintNormal PTR_S_RECEIPT, ESC + "|1B"
End With
 

NVRAM(不揮発性メモリー)に画像データを登録後、DirectIOメソッドで印刷

NVRAM(不揮発性メモリー)搭載のTMプリンターは、このNVRAM上に画像データを登録することができます。
NVRAMに画像データを登録するにはロゴ登録ユーティリティーを使用します。

 

DirectIO メソッドで登録された画像番号を印刷する命令をすると、TMプリンター本体に登録された画像を印字することができます。
TMプリンター本体のNVRAMから画像データを呼び出しているために、高速な印字が可能です。

NVRAMに登録された画像データは、SetBitmap メソッドで登録された画像データとは異なり、Close メソッドの実行やプリンターの電源をOFFにしても登録された画像データは削除されません。
一度登録することで、次回使用時に改めて画像データを登録する必要がありません。

TMプリンター本体に画像登録する場合、SetupPOS ユーティリティの「デバイス固有の設定」からロゴ登録ユーティリティーを起動することができます。
ロゴ登録ユーティリティーに関する詳細につきましては、「TMFLogoユーティリティ」のヘルプ、および EPSON OPOS ADK マニュアル「ユーザーズマニュアル TM Flash ロゴユーティリティ」を参照してください。

Visual Basic 6.0(登録にキーコードを使用していない場合)

Num = 1 '(登録したビットマップ番号)
Data = CStr(PTR_BM_CENTER) '(印字位置の指定 例_中央寄せ)
With OPOSPOSPrinter1
    rtn = .DirectIO(PTR_DI_PRINT_FLASH_BITMAP, Num, Data)
End With
 

Visual Basic 6.0(登録にキーコードを使用している場合)

'(31~16bitにキーコードの1バイト目を、15~0bitにキーコードの2バイト目を格納した数値)
Num = 2097184
Data = CStr(PTR_BM_CENTER) '(印字位置の指定 例_中央寄せ)
With OPOSPOSPrinter1
    rtn = .DirectIO(PTR_DI_PRINT_FLASH_BITMAP2, Num, Data)
End With
 
カスタマーディスプレイ DM-D500
モバイルプリンター TM-P20,TM-P60II,TM-P80
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-m10,TM-m30,TM-T20,TM-T20II,TM-T70,TM-T70II,TM-T88III,TM-T88IIIX (ARCX搭載),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
FAQ改善アンケート

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

 

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