读书人

高分求Pos小票打印图片!该如何解决

发布时间: 2012-07-28 12:25:13 作者: rapoo

高分求,Pos小票打印图片!急!
想要控制打印机进纸、退纸。
我用的源码如下。现在要在小票前打印logo图片
AFileToPrint 要打印文本路径。
procedure GoPrintFile(AFileToPrint: string);
var
Port, FileToPrint: TextFile;
ALine: string;
iIndex:Integer;
begin
try
AssignFile(FileToPrint, AFileToPrint);
Reset(FileToprint);
AssignFile(Port,'lpt1');
Rewrite(Port);
Writeln(Port,Chr(27)+Chr(106)+chr(250));//退纸
while not Eof(FileToPrint) do
begin
Readln(FileToPrint, ALine);
ALine:=TempStr+ALine;
Writeln(Port, ALine);
end;
Writeln(Port,Chr(27)+Chr(70)+chr(250));//进纸
finally
closefile(Port) ;
closefile(FileToPrint);
end;
end;
如果用Printer.Canvas.StretchDraw(Rect,Image1.Picture.Graphic);
可很好打印图片及控制Logo大小,但加上打印机进纸、退纸命令无效。如果能用Epson控制指令打印图片更好!有人做过类似的吗?望高手指点。

[解决办法]

这样吧?POS58 下的小票机现在有很多本身机器不支持退纸,热敏就肯定不行。
 
 procedure GoPrintFile(AFileToPrint: string);
var
Port, FileToPrint: TextFile;
ALine: string;
iIndex:Integer;
begin
try
AssignFile(FileToPrint, AFileToPrint);
Reset(FileToprint);
AssignFile(Port,'lpt1');
Rewrite(Port);
Writeln(Port,Chr(27)+Chr(106)+chr(250));//退纸
while not Eof(FileToPrint) do
begin
Readln(FileToPrint, ALine);
ALine:=TempStr+ALine;
Writeln(Port, ALine);
end;
Writeln(Port,Chr(27)+Chr(70)+chr(250));//进纸
finally
closefile(Port) ;
closefile(FileToPrint);
end;
end;

这一段命令在你的机子上能不能进退纸??

如果能的话,应该就是安装驱动的原因。
[解决办法]
up
[解决办法]
直接写端口的,只写过字符,图片还真没搞过,

帮顶
[解决办法]
只有平推才能退纸,我有一个文档不知能否帮到你,加我Q26566744发给你

读书人网 >.NET

热点推荐