兄台,小弟还有一事不明,望指教,在WriteFile怎么样去使用这个ESC命领,比如ESC中这个 GS V 1D 56 m 走纸到切纸位置,那我该怎么使用呢??
var f: TextFile; begin Assignfile(f,'LPT1'); rewrite(f); write(f,#$1b'@'); //初始化打印机 closefile(f); end; 用法如上GS V 1D 56 m 手上没有手册,按的印象"GS”就象书上写的"ESC"一样,都是一个字符,ESC是$1B,GS是啥你自己查一下,m似乎是这变量,大概的意思是控制半切,全切的一个数 比如GS是$1D,全切是0,对应的输出语句是: write(f,#$1D'V'#$1D#$56#$0); 或者写成 write(f,chr($1d)+'V'+chr($1d)+chr($56)+chr(0)); 两种写法是一个意思的。
网上查了一下,你那么写把我搞晕了 GS V 走纸到切纸位置格式:① ASCII: GS V m十进制: 29 86 m十六进制: 1D 56 m② ASCII: GS V m n十进制: 29 86 m n十六进制: 1D 56 m n说明:①m=1,49。②m=66,0≤n≤255M 解 释1,49 部分切纸(无切刀则无切纸动作)66 走纸到(切纸位置+n×1/144英寸)位置并部分切纸(无切纸刀则无切纸动作)说得很清楚了,2种用法,一种是GS V m 一种是GS V n m 我记得我原来切纸用的是 write(f,#$1d'V'#0)
2.需要查一下打印机的命令手册,ESC命令可以直接实现常用条码打印,特殊条码,需要用打印的ESC命令控制它,使之进入位图模式,根据你的要求打印任意图形;
3.切纸命令也是一个ESC命令,命令手册上可以查到的,包括半切、全切什么的,都能控制的。
最好能给我一个实体,不然我理解不了,谢谢兄台
var
f: TextFile;
begin
Assignfile(f,'LPT1');
rewrite(f);
write(f,#$1b'@'); //初始化打印机
closefile(f);
end;
用法如上GS V 1D 56 m 手上没有手册,按的印象"GS”就象书上写的"ESC"一样,都是一个字符,ESC是$1B,GS是啥你自己查一下,m似乎是这变量,大概的意思是控制半切,全切的一个数
比如GS是$1D,全切是0,对应的输出语句是:
write(f,#$1D'V'#$1D#$56#$0);
或者写成
write(f,chr($1d)+'V'+chr($1d)+chr($56)+chr(0));
两种写法是一个意思的。
GS V 走纸到切纸位置格式:① ASCII: GS V m十进制: 29 86 m十六进制: 1D 56 m② ASCII: GS V m n十进制: 29 86 m n十六进制: 1D 56 m n说明:①m=1,49。②m=66,0≤n≤255M 解 释1,49 部分切纸(无切刀则无切纸动作)66 走纸到(切纸位置+n×1/144英寸)位置并部分切纸(无切纸刀则无切纸动作)说得很清楚了,2种用法,一种是GS V m 一种是GS V n m
我记得我原来切纸用的是
write(f,#$1d'V'#0)
Assignfile(f,'lPT1');
rewrite(f);
Writeln(F,chr(27)+chr(64)); //初始化打印机
Writeln(F,Char(27)+char(33)+char(16));//设置字体
Writeln(f,Edit1.text+Edit2.text+Edit3.text);
Writeln(F,Char(27)+char(33)+'0');
Writeln(f,' 票价 ¥20.00 服务费 ¥0.00 ') ;
Writeln(f,' 总计 ¥20.00 ');
Writeln(f,' ' );
Writeln(f,' ' );
Writeln(F,chr($1d)+ 'V' +char(66)+chr(30)); //切d纸
为什么每次打印都会到纸中间去打,不能置顶或者是在上去一点打印呢?
这句干什么的?仿佛是设置行高为倍高了另外,需要换行的才用writeln,否则用write
rewrite(f);
write(f,#$1b'@'); //初始化打印机
write(f,#$1b'3'#49); //49/144inch
write(f,#$1d#$4c#1#0);//左边20个点开始打印
write(f,#$1d#$57#100#2);//最大612个点
后面是打一张图,然后就是切纸了。我这个是直接用的彩票机上拆下来的热打,出厂的时候做过什么非常规的设置,不得而知。另,条码部分一直没用过,手上也没有ESC的参考资料,可能帮不了你,印象中是可以打的。
GS H n //HRI
GS f n //HRI字体
GS h n //条码高度
GS w n //条码最小单位宽度
GS k m… //打印条码
可是还是不能打。还有非常谢谢你这两天来对我的帮助,非常谢谢。学会了不少东西。待会我就给分
write(f,#$1d#$6b#0);
write(f,'098765432198'#0#$A); //12位数据每种类型的条码,其数据部分都是有长度要求的,如果你打印的数据长度不符,可能不会给打出来的