关于票据打印机打印点阵字库汉字的问题(200分)

  • 主题发起人 主题发起人 wx602
  • 开始时间 开始时间
W

wx602

Unregistered / Unconfirmed
GUEST, unregistred user!
有一客户打印机为EPSON TMU-210,串口,不带硬字库,需要打印小票(类似超市POS)。现在已经做到
从16*16的点阵字库中取出字模,并正常打印,但客户提出需要打印更大字体的汉字,则将点阵字库
换成了24*24的字库文件,发现用Bmp能够显示出来,但是打印为乱码。
如果有打印达人解决过这类问题,请不吝赐教。谢谢。
注:关键是如何将取出的点阵转化,然后传给打印机。
 
打印机达人们都消失了么?[:)]
 
在windows还是在dos下面用?
在windows下面装自带的驱动程序,可以支持打汉字.
在dos下面 好像也提供了一个打印汉字的东西,dos下面的有点记不清了.
 
在Windows下使用,现在要做到打印机无关性打印,不能装驱动程序。必须直接对打印机端口
进行操作,楼上的能不能说的详细一点阿,先谢谢了!
 
取出字模后把所有的文字打印在一个bitmap上,然后把bitmap送往打印机,用printer对象。
 
用Printer对象,就不能精确的控制走纸了,我要实现的是小票打印,必须做到行打,所以只有
必须操作打印机端口阿
 
你说的无关性是指要可能会使用不同的打印机吗? 那你再装对应的驱动程序啊
如果是要换平台使用? 你的代码能通用吗?
我以前在windows下面做过使用这个型号的打印机打印小票的东西,我是使用的驱动程序,
驱动程序支持打印汉字, 打印大点的字体没有问题 ,
如果你实在是想要直接进行端口操作的话,那你只有读出更大字体的点阵,以打印机的图形
方式打印出汉字了, 另外一个可能:你用的 24*24是什么字库,因为它和16点阵的结构是不
一样的,dos下面的打印和显示用的24点阵结构也都是不一样的.
 
楼上说用驱动程序支持打印汉字,那是怎么做到控制打印机的走纸的,用Printer的begin
doc
和EndDoc的方法后就必须走完一页纸,而我这里每次是打一行的,望能告知怎么解决。
另16点阵的字库打印我已经实现了,现在存在一个问题,就是票据打印机的打印针头每次最
多只能打8个点,所以打24点阵的汉字,必须打完了上半部就自动换行,跳到下半部,这块
的控制打印机换行和控制每行高度的命令我不是很熟,楼上的知道么?
 
如果不行的话,把16*16点陈的字库放大1.5倍,这样如果能打印的话,就应该没有问题了。可能字就没有24*24的那么好看而已。
缩放比较简单吧?我没有做过,也不知道。
 
放大怎么实现?
 
我再详细问问我公司的老大。这个问题是我跟他聊起的,他说1放大可以搞定。他在公司是专门做ps(postscript)应用、打印机驱动、网络打印的牛人,打印这一块有经验。我还是小DD,问清楚了再告诉你。
 
wx602, 我的程序是在几年前刚开始学习 C++ builder 的时候写的了,做的是一个小票打印
程序, 使用的方法是printer的 begin
Doc 和 EndDoc ,打印使用是
pPrn->Canvas->TextOut();
的语句,每次打印一张小票后,走纸刚好到打印纸出口的位置,并没有出现走纸无法控制的
问题, 因为是几年前做的,我已经想不起来当时是怎么控制的了, 我找到了源程序
看了看,没有找到答案, 你可以按照我上述的方法试一下,我也在想想,想起来了就告诉你
 
to yhw1999: 这个方法我试过了,我这里是一行一行的打印,不能做成一张小票打印,并且
每张小票打印的大小是不确定的,你的方法不过详细,望能具体说明。
to 各位达人们:一定帮我把方法想出来,事关偶的工作阿,不然就被炒了。
 
我也在做,但是比你还不如。我都不知道如何取字模。你们帮我一下么?
我用的也是210的机器。没有汉字库。但是要求打印的字体美观清晰(16*16).你可以mail一个例程给我么?多谢了!!
jacklee@mail.hf.ah.cn 希望不吝赐教!![?]
 
to: wx602
你的16*16是怎样打的?打汉字的问题我一直没解决,你能提供一段代码示例吗?
 
看看这个对你又帮助吗:http://www.delphibbs.com/delphibbs/dispq.asp?lid=833341
 
后退
顶部