C# 使用蓝牙热敏打印机写入命令ESC/POS
我尝试将默认代码页更改为PC858(多语言+欧元)以打印符号€ 但是任何ESC/POS命令都可以工作 所以我尝试发送命令的十六进制值:C# 使用蓝牙热敏打印机写入命令ESC/POS,c#,android,bluetooth,escpos,C#,Android,Bluetooth,Escpos,我尝试将默认代码页更改为PC858(多语言+欧元)以打印符号€ 但是任何ESC/POS命令都可以工作 所以我尝试发送命令的十六进制值: public void EnvoiCommande(byte donnee) { byte[] array = {donnee}; _outStream.Write(array, 0, 1); _outStream.Flush(); } public void Impressi
public void EnvoiCommande(byte donnee)
{
byte[] array = {donnee};
_outStream.Write(array, 0, 1);
_outStream.Flush();
}
public void ImpressionTicket(List<string> donnee, string appareil, Texture2D logo)
{
// Code Page
EnvoiCommande(0x1b);
EnvoiCommande(0x74);
EnvoiCommande(0x13);
foreach (var txt in donnee)
{
var ligne = txt;
Encoding encoding = Console.OutputEncoding;
byte[] originalBytes = encoding.GetBytes(ligne);
byte[] outputBytes = Encoding.Convert(encoding,
Encoding.GetEncoding("CP00858"), originalBytes);
_outStream.Write(outputBytes, 0, outputBytes.Length);
Thread.Sleep(10);
}
}
public void envoice命令(字节donnee)
{
字节[]数组={donnee};
_扩展流写入(数组,0,1);
_冲水;
}
public void ImpressionTicket(列表donnee、弦乐器、纹理2D徽标)
{
//代码页
环境命令(0x1b);
环境命令(0x74);
环境命令(0x13);
foreach(donnee中的var txt)
{
var ligne=txt;
编码编码=Console.outputenecoding;
byte[]originalBytes=encoding.GetBytes(ligne);
字节[]输出字节=编码。转换(编码,
Encoding.GetEncoding(“CP00858”),原始字节);
_outStream.Write(outputBytes,0,outputBytes.Length);
睡眠(10);
}
}
我所有的文字都打印正确,但我的符号无效
提前感谢您的帮助,我尝试了许多PDF,并测试了许多类似的问题,但都不起作用。Encoding.GetEncoding返回一个您必须使用的值。您是否尝试只发送字节码欧元,以查看是否有正确的代码页 如果您尝试打印0xD5,并且获得了欧元符号,则是,您拥有正确的代码页 然后我们知道问题是当您将字符串转换为byteArray时,请检查以下内容: unicode中的欧元为:0x20AC,即0xE2 0x82 0xAC。因此,欧元符号转换为3个字节,对打印机具有其他含义。打印机可能会打印这个“ÔÔ¼” 如果只有欧元符号有问题,只需在将字符串转换为字节[]之前检查字符串即可
if (ligne.contains("€"){
ligne.replace("€",(char)0xD5);
}
一次性发送“字符表命令”:
public void EnvoiCommande(params byte[] donnees)
{
_outStream.Write(donnees, 0, 1);
_outStream.Flush();
}
// Code Page
EnvoiCommande(0x1b, 0x74; 0x13);
我真的不明白,我用CP00858(OEM858)转换我的文本,但我得到了带有欧元符号和重音的中文字符。当我发送命令ESC/POS任何工作时,我的打印机会打印这样的内容:啊,谢谢,是的,我尝试过,所以为了解决这个问题,我买了另一台打印机,这就是工作。旧打印机在我更改页面代码时不保存页面代码。(BT-PRINT)