W
windyson
Unregistered / Unconfirmed
GUEST, unregistred user!
查了查前面的问题,这个问题前面已经有好多人问过了,也有部分解决了,脱离了苦海。
我是在Win2000下开发,很多Win98下的常规方法可能不行。
不过我依照前面的办法试过,却总是不成功。还请各位过来人指点一二。
我的需求:打印机一行行打印,不要自动进纸。
试验代码一:
AssignFile(lpt, 'prn' );
ReWrite(lpt );
...//我的打印处理
Writeln(lpt, '打印测试' );
...
CloseFile( lpt );
这种情况下打印效果就是我所想要的,不过遇到中文输出乱码.前面一些解答中从来没有提到过
这种方式下的中文乱码问题.我现在用Epson 750作测试,不知是否和打印机有关。
试验代码二:
直接发ESC命令。参考各位解答我试验了几组代码,但总是不成功,现在随便贴出一段,
还请点拨一二。
...
procedure TForm1.Directprint(s:string);
type
PrnBuffRec=record
Bufflength:integer;
Buffer:array[0..255] of char;
end;
var BuffrnBuffRec;
begin
StrPcopy(Buff.Buffer,s);
Buff.Bufflength:=Strlen(Buff.Buffer);
Escape(Printer.handle,Passthrough,0,@Buff,nil);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Printer.begin
Doc;
DirectPrint(chr(28) + chr(38));
'选择汉字
DirectPrint(chr(28) + chr(107) + chr(0));'选择宋体字体
DirectPrint(chr(28) + chr(83) + chr(0) + chr(0));'设定全角汉字间距
DirectPrint(chr(27) + chr(51) + chr(24));'设定24/180英寸的换行量
...
DirectPrint(CHR(28)+chr(101)+chr(32)+chr(32)+' 客运公司收费单 ');
DirectPrint(CHR(28)+chr(101)+chr(32)+chr(32)+' 客运公司收费单 ');
...
Printer.EndDoc;
end;
这种情况下有内容送到打印队列,但打不出内容.
另外,设置自定义纸张尺寸和写端口我也是过,没有成功。我是用BCB开发,不过Delphi和BCB
代码都没有问题,能否贴出代码指点一下我的问题究竟出在哪里。问题解决立刻结账。
我是在Win2000下开发,很多Win98下的常规方法可能不行。
不过我依照前面的办法试过,却总是不成功。还请各位过来人指点一二。
我的需求:打印机一行行打印,不要自动进纸。
试验代码一:
AssignFile(lpt, 'prn' );
ReWrite(lpt );
...//我的打印处理
Writeln(lpt, '打印测试' );
...
CloseFile( lpt );
这种情况下打印效果就是我所想要的,不过遇到中文输出乱码.前面一些解答中从来没有提到过
这种方式下的中文乱码问题.我现在用Epson 750作测试,不知是否和打印机有关。
试验代码二:
直接发ESC命令。参考各位解答我试验了几组代码,但总是不成功,现在随便贴出一段,
还请点拨一二。
...
procedure TForm1.Directprint(s:string);
type
PrnBuffRec=record
Bufflength:integer;
Buffer:array[0..255] of char;
end;
var BuffrnBuffRec;
begin
StrPcopy(Buff.Buffer,s);
Buff.Bufflength:=Strlen(Buff.Buffer);
Escape(Printer.handle,Passthrough,0,@Buff,nil);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Printer.begin
Doc;
DirectPrint(chr(28) + chr(38));
'选择汉字
DirectPrint(chr(28) + chr(107) + chr(0));'选择宋体字体
DirectPrint(chr(28) + chr(83) + chr(0) + chr(0));'设定全角汉字间距
DirectPrint(chr(27) + chr(51) + chr(24));'设定24/180英寸的换行量
...
DirectPrint(CHR(28)+chr(101)+chr(32)+chr(32)+' 客运公司收费单 ');
DirectPrint(CHR(28)+chr(101)+chr(32)+chr(32)+' 客运公司收费单 ');
...
Printer.EndDoc;
end;
这种情况下有内容送到打印队列,但打不出内容.
另外,设置自定义纸张尺寸和写端口我也是过,没有成功。我是用BCB开发,不过Delphi和BCB
代码都没有问题,能否贴出代码指点一下我的问题究竟出在哪里。问题解决立刻结账。