Printing 在Epson TM-T88IVM上打印简体汉字

Printing 在Epson TM-T88IVM上打印简体汉字,printing,point-of-sale,opos,epson,Printing,Point Of Sale,Opos,Epson,我正在尝试使用C#中的Microsoft Point of Service SDK在Epson TM-T88IV M(并行端口)上打印汉字。但是,它们在打印机上显示为问号。(?) My PosPrinter具有以下有效字符集列表: 25543785085858588860863858669369989991252 还有下面的CapCharacterSet:汉字 代码页1252是默认的windows代码页。936是简体中文的代码页。在本例中,我使用代码页936,但从未能够在打印机上显示中文字符 例

我正在尝试使用C#中的Microsoft Point of Service SDK在Epson TM-T88IV M(并行端口)上打印汉字。但是,它们在打印机上显示为问号。(?)

My PosPrinter具有以下有效字符集列表: 25543785085858588860863858669369989991252

还有下面的CapCharacterSet:汉字

代码页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)中配置错误。我做了很多尝试,但都没有成功。有什么想法或代码示例吗


注:在自检中,打印机不会打印汉字。

爱普生TM-T88IV多语言要求您将字符串转换为代码页936,然后在ISO-8859-1中表示该字符串

有关算法的详细信息,请参见其他问题:

在发送到打印机之前执行此操作。
str=Encoding.GetEncoding(“ISO-8859-1”).GetString(Encoding.GetEncoding(_ReceiptPrinter.CharacterSet).GetBytes(str))

您的示例中的
字符集是什么?还有,汉字!=简体中文.charset==936(简体中文代码页);汉字是CapCharSet枚举值。我希望使用unicode,但假设Epson将其定义为汉字,因为没有更好的选择(我认为这台打印机不支持所有unicode,只支持简体中文的特定子集)公共枚举字符集功能{Numeric=0,Alpha=1,Kana=10,Kanji=11,Unicode=997,Ascii=998,Windows=999,Ansi=999,}你好,Jason,你是如何检查打印机中的有效字符集列表的?下面的答案在我测试简体中文(936)时有效,但在繁体中文(950)上无效