请教POS机打印中文的问题

seanzh 2008-08-29 11:05:08
我用C#直接往LPT口上写Stream的方式来对POS机进行打印,
但是不知道为什么,就是不能打印中文出来:

IntPtr iHandle = CreateFile("LPT1", 0x40000000, 0, 0, OPEN_EXISTING, 0, 0);
if (iHandle.ToInt32() == -1)
{
MessageBox.Show("Open Printer Failed!");

return false;
}
else
{
FileStream fs = new FileStream(printerHandler.iHandle, FileAccess.ReadWrite);
StreamWriter sw = new StreamWriter(printerHandler.fs, Encoding.GetEncoding("GB2312"));

sw.WriteLine(strMessage);

sw.Close();
fs.Close();
CloseHandle(iHandle);
}

我试了好几种Encoding,包括Unicode, UTF-8, 936, 20936等,都还是不能打印出来中文,
哪位是否知道哪里有什么需要做特殊处理的?谢谢了!

我用的是CITIZEN的一款POS打印机。
...全文
294 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
angelmm2008 2008-11-21
  • 打赏
  • 举报
回复
我现在做了个打印epson T系列,L系列,J系列的图形打印接口。
和所有支持esc *指令的打印机的图形接口
- -现在是能打印了,但是会出现当byte大于128以后打印机不打印的情况(只走打印头)
pooky 2008-11-21
  • 打赏
  • 举报
回复
Microsoft.Win32.SafeHandles.SafeFileHandle sfh = new Microsoft.Win32.SafeHandles.SafeFileHandle(iHandle, true);
FileStream fs = new FileStream(sfh, FileAccess.ReadWrite);
StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.Default); //写数据

//清除打印机缓存
Char[] ch1 ={ (char)0x1B, (char)40 };
sw.WriteLine(new String(ch1));

sw.WriteLine(str); //中文字

sw.Close();
fs.Close();
CloseHandle(iHandle);
lfpjm 2008-11-21
  • 打赏
  • 举报
回复
如果是热敏打印机,需要设置
lvg 2008-11-21
  • 打赏
  • 举报
回复
up
seanzh 2008-08-31
  • 打赏
  • 举报
回复
如果使用PrintDocument来画的话,
是否可以在打印的过程中使用打印机自定义的命令?
seanzh 2008-08-30
  • 打赏
  • 举报
回复
是不是需要用图形来进行处理?
GB2312,UNICODE,UTF-8这些都试了
cnming 2008-08-30
  • 打赏
  • 举报
回复
我以前做过,但是没有遇到这个问题,目前我有点忘记如何实现了,映像中我形成了一个txt文件,然后把这个文件送到LPT端口,好像使用shell调用命令行
yagebu1983 2008-08-30
  • 打赏
  • 举报
回复
gb2312试了吗??
yagebu1983 2008-08-30
  • 打赏
  • 举报
回复
不支持中文,那麻烦了!!
格拉 2008-08-30
  • 打赏
  • 举报
回复
试试GB2312
seanzh 2008-08-30
  • 打赏
  • 举报
回复
POS机说明书上说明支持的code page里没有找到中文对应的code page,
只支持以下这些code page: Code page 437, 850, 852, 857, 858, 860, 863, 864, 865, 866,
Katakana, WPC1252 , Thai code 18

另外支持了一些character type,写了有China,好像就只是一些符号,比如钱的符号¥,在英文里是$之类的,
好像没有看到说支持中文,
但是如果直接用记事本来打印,又可以打印出中文来,
是不是需要在Windows上把字符的bitmap传给它?
如果是的话需要怎么传?
seanzh 2008-08-30
  • 打赏
  • 举报
回复
哪位知道应该如何对FileStream使用Graphics来画图进去?
这样好像能实现我想要做的功能。
kyle315 2008-08-29
  • 打赏
  • 举报
回复
看POS机的说明说,应该有设置中文格式的命令。

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧