如何解决PB中打印发票时控制松下1131打印机自动回退一点?
我在用松下1131针式打印机打印发票的时候,每次打完一张,打印机自动走纸到下一张时位置总是不对,要手工回退一部分,大概一行的距离,请教如何通过程序控制?
我看了打印机说明书里有这样的指令:名称 十进制 十六进制 参数 功能
ESC"j"n 106 6A (0<=n<=255) 十进制 以n/180英寸为距离,退纸一行,不知该如何用?
问题点数:100、回复次数:5Top
1 楼pufan()回复于 2002-10-23 21:46:04 得分 50
这篇文章可能对你有帮助.
Pb中定制打印页长
---- 在使用连续纸打印数据窗口的情况下,需要定制打印的页长,以保证打印机
走纸正确,不用人工干预,实现连续打印。在PB中须调用外部函数来自定义纸张
长度,比较繁琐。本文介绍一种直接对打印机的控制方法,简单实现对页长的设
定。
---- 一、 预备知识
---- 计算机与打印机的通讯使用ASCII码进行,其中标准ASCII码包括可打印字符
及非打印字符(控制码),打印机使用控制码来定制打印机。大多数打印机指令
使用控制码escape作为其指令序列的第一个序列码。下面介绍本文用到的几个指
令码序列:
设置换行量(行距)1/8 英寸
ASCII码 ESC 0
十进制码 27 48
设置以行为单位的页长
ASCII码 ESC C n
十进制码 27 67 n
其中n 为每页行数范围(1-127)
---- 二、 PB中控制码的传送及定制页长的实现
---- 在PB中通过函数Printsend(printjobnumber,string,{zerochar})来实现向
打印机发送控制码。各参数定义如下:
printjobnumber: 由printjob()函数返回的打印作业号;
string: 控制字符串,使用ASCII码;
zerochar: 用来替代string中的数字0;
---- 由于字符串中,0终止字符串,如果string 中包含0,则需利用其他字符来
表示0,参数zerochar即为此用途而设,当PB发送控制字符串给打印机时,把替代
的字符zerochar转化为0。
---- 下面是具体的完成定制页长打印数据窗口的程序(定制页长为2.75英寸):
long ll_job
dw_print.reset()
ll_job = printopen()
if ll_job = -1 then
messagebox(gs_title,"打印机未准备好")
return
end if
//定制行距1/8英寸
PrintSend(ll_job, CHAR(27)+CHAR(48))
//设定页长22行
PrintSend(ll_job, CHAR(27)+CHAR(67)+CHAR(22))
printdatawindow(ll_job,dw_print)
printclose(ll_job)
Top
2 楼shi_jm(飞扬)回复于 2002-10-23 21:47:34 得分 0
非常感谢!!!Top
3 楼sdav(ASP.net学习中)回复于 2002-12-19 10:35:40 得分 10
你是做什么软件的呀,可以做个朋友么?我也是做发票打印的,十分专业哦!
从增值税票,到卷筒票,手工票,无一不通!Top
4 楼nettang(唐朝)回复于 2002-12-19 18:33:50 得分 30
我用的也是1131的,我感觉这款打印真的没得说, 棒极了,价格同300K差不多,不过速度快多了,质量也好.我们也是用这个打发票的,从来没有出现你的这个问题,不过我最初调试程序的时候也出现你这个问题,发现是打印的驱动程序没有装对,后来更正后就好了,你要装最新的1131驱动程序, 如果在windows2000下最好用Star 2400 驱动程序!Top
5 楼jdf226(捷峰)回复于 2002-12-30 11:22:46 得分 10
我用vc编了一个dll你可任意设置Top




