我正在尝试在80mm热敏票据打印机上打印英镑符号(£),但其显示标记(?)。我正在使用原始打印机帮助程序c#。
StringBuilder print = new StringBuilder();
string barcode = "1234567890";
char commandGS = '\x1D';
char linefeed = '\x0A';
char esc = '\x1B';
char commandFontSize = '\x21';
char commandk = '\x6B';
char code128 = '\x69';
print.Append("£200.\r\n");
print.Append(code128);
print.Append(barcode.Length);
print.Append(barcode);
string printJob = print.ToString();
RawPrinterHelper.SendStringToPrinter("PrinterName", printJob);
答案 0 :(得分:2)
如果您在热敏打印机上进行原始打印,则符号未显示可能是字体问题。也就是说,打印机上安装的字体不包含您要打印的符号。
根据该打印机的型号,您将必须安装一种包含要使用的符号的字体。检查制造商的站点和打印机文档,有时在那里说明安装新字体或缺少代码页的情况。
此外,请检查您使用的代码页是否正确,并且要打印的£符号的代码与打印机上的字体的代码相同。有时在热敏打印机中,默认字体会稍微减少一些基本字符,以使字体更浅。
更多信息:
https://ask.libreoffice.org/en/question/88407/how-to-access-printer-built-in-fonts/
https://sites.psu.edu/symbolcodes/windows/charmap/
磅字符£具有两个版本: http://www.fileformat.info/info/unicode/char/search.htm?q=+%C2%A3&preview=entity
答案 1 :(得分:0)
StringBuilder print = new StringBuilder();
string barcode = "1234567890";
char commandGS = '\x1D';
char linefeed = '\x0A';
char esc = '\x1B';
char commandFontSize = '\x21';
char commandk = '\x6B';
char code128 = '\x69';
print.Append("£200.\r\n");
print.Append(code128);
print.Append(barcode.Length);
print.Append(barcode);
string printJob = print.ToString();
RawPrinterHelper.SendStringToPrinter("PrinterName", printJob);