質問

主題として、私は POS プリンター MatrixPoint MP-3250 を持っています。マニュアルに記載されているように、これはサポートコマンドです。ESC/POS対応

Googleで検索して試してみましたが、うまくいきません。少なくとも、凝縮フォント、太字、斜体、および紙の切断コマンドを設定します。

走行仕様:

  1. Windows 7 32ビット
  2. プリンターインターフェイスは平行スロットでした。USBアダプターと平行にBAFOを使用します。
  3. BAFO のドライバーをインストールすると、次の結果が得られます。USB001 -USB用仮想プリンターポート
  4. 「デバイスとプリンター」に手動でプリンターを追加します(ローカルプリンターを追加し、USB001ポートに設定し、ジェネリック /テキストのみのプリンタードライバーを使用します。
  5. Winspool API (WritePrinter) を使用してコマンドを送信します
  6. デルフィ XE

助けてください。コメントをいただければ幸いです。

これを使ってみた ESC/POSマニュアル.

編集。

その方法は次のとおりです。

function WriteToPrinter(const Data: string): DWord;
var Temp: AnsiString;
begin
  // write directly to printer device
  { ----
    Note:
    This method is also able to send Escape command sequences directly,
    so you're no longer need to call Win32 API complicated Escape() function.
  }

  // We need convert to raw string since I'm using Delphi XE
  // string = UnicodeString

  Temp := AnsiString(Data);

  Result := 0;
  if (fPrnStatus = rpsPageStarted) then
    WritePrinter(fPrnHandle, PAnsiString(Temp), Length(Temp), Result);
end;

WriteToPrinter(#27'@'); // init printer
WriteToPrinter(#27'S'); // normal mode?
WriteToPrinter('Printing to default printer.'); // data
WriteToPrinter('GSV0'); // Cut the paper

印刷された紙で得られたもの:OWOTOFTデフォルトプリンターへの印刷 (変な文字が出てきます)

紙が切れなかった(切れなかった)

編集:ほとんど忘れられていましたが、上記のものは Epson 互換/IBM 9068A Passbook Printer (Dot Matrix) で正常に動作します。(よくわかりません) プリンターはアダプターを使用せずに、USB / パラレル ポートに直接接続されました (今のように USB にパラレル)。

このアダプターまたはそのドライバーの間で何か問題があるのではないかと思います。

ありがとう

役に立ちましたか?

解決 2

事件は解決しました。私の最後の疑いは正しかったです。問題は BAFO (パラレル - USB アダプタ) でした。ため息、この半動作アダプター (非互換) のせいで、かなりの時間を費やしてしまいました。別のタイプ/分岐アダプターに交換することで、正常に動作するようになりました。

すべての貢献者に感謝します

他のヒント

カットコマンドが間違って送信されました。

GSv0 は次のように分割されます。gs(グループセペレーター)#29 v小文字 'v' 0バイナリ値ゼロ#0

これでうまくいくはずです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top