0

OPOS Common Controls 1.8 を使用して Epson TM-H6000III レシート プリンターで Code 128 C タイプのバーコードを印刷しようとしています (タイプ A/B では幅が広すぎるため)。私のコードは C++ で書かれています。

通常、次のコード スニペットを使用してバーコードを印刷します。

const LONG PTR_BCS_Code128 = 110;
lOposBarcodeType = PTR_BCS_Code128;
lReturn = m_PosPrinter.PrintBarCode(2,*lpszTextline,lOposBarcodeType,120,5,PTR_BC_CENTER,PTR_BC_TEXT_BELOW);

ここで*lpszTextlineは、バーコードとして印刷するデータを表します。

オンラインで見つかった提案から、コード 128 C 形式でバーコードを印刷するために次の変更を加えようとしました。

const LONG PTR_BCS_Code128_Parsed = 123;
lOposBarcodeType = PTR_BCS_Code128_Parsed;
lReturn = m_PosPrinter.PrintBarCode(2,*lpszTextline,lOposBarcodeType,120,5,PTR_BC_CENTER,PTR_BC_TEXT_BELOW);

さまざまな方法でバーコードデータをフォーマットしようとしました:

  • 先頭の「{C」
  • 先頭の「{C」、末尾の「H」
  • いいえ。データ内の文字数

しかし、どの方法も機能しませんでした。常に ResultCodeExtended = 300003 の OPOS_E_ILLEGAL エラーが発生しました。インターネットでも拡張コードに関する詳細情報を見つけることができません。

この点でどんな助けでも大歓迎です。

前もって感謝します。プロス

4

1 に答える 1

0

モードは、多くの場合、印刷しようとしているデータに基づいて、プリンタのファームウェアによって決定されます。最良の動作は、可能な限りコンパクトに印刷しようとする場合です。データがすべて数値の場合はモードCが使用され、アルファベットなどの場合はモードAが使用され、必要に応じてモードからモードに切り替わります。17桁の数字最初の16桁はモードCとして印刷され、17桁目はモードAに切り替わります。

プリンタのファームウェアがこれを直接処理する場合は、モードを自分で選択することさえできない場合があります。または、一部のサーマルプリンターは、モードC以外は印刷できず、アルファベット文字を印刷しようとするとエラーを返します。(モードCしか印刷できない古いIBM Suremarkプリンターがいくつかありました。)

エプソンにご確認ください。

于 2012-06-06T17:00:20.893 に答える