7

C# で Microsoft Point of Service SDK を使用して、Epson TM-T88IV M (パラレル ポート) で漢字を印刷しようとしています。ただし、プリンターでは疑問符として表示されます。(?)

私の PosPrinter には次の有効な CharacterSetList があります: 255,437,850,852,858,860,863,865,866,936,998,999,1252

そして、次の CapCharacterSet: Kanji

コード ページ 1252 は、デフォルトの Windows コード ページです。936 は簡体字中国語のコード ページです。この場合、コード ページ 936 を使用していますが、プリンターで漢字を表示できませんでした。

例:

string str = "重新开始";
// open device as variable _ReceiptPrinter, claim it, mark it as enabled 
_ReceiptPrinter.CharacterSet = 936;
_ReceiptPrinter.PrintNormal(PrinterStation.Receipt, str);

これにより、すべての漢字が ? に置き換えられたテキストが出力されます。

印刷前に追加のエスケープ コードを指定する必要があるかどうか (ESC R 15?)、または Epson OPOS でプリンターが正しく構成されていないかどうか (v2.50e) がわかりません。いろいろ試してみましたが、何もうまくいきませんでした。アイデアやコード例はありますか?

注: セルフ テストでは、プリンタは漢字を印刷します。

4

1 に答える 1

4

Epson TM-T88IV マルチリンガルでは、文字列を CodePage 936 に変換してから、その文字列を ISO-8859-1 で表す必要があります。

アルゴリズムの詳細については、この他の質問を参照してください。

この文字列エンコード コードを単純化できますか

プリンタに送信する前にこれを行ってください。str = Encoding.GetEncoding("ISO-8859-1").GetString(Encoding.GetEncoding(_ReceiptPrinter.CharacterSet).GetBytes(str));

于 2010-01-15T16:36:33.587 に答える