高分求,Pos小票打印图片!该如何解决
高分求,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发给你
想要控制打印机进纸、退纸。
我用的源码如下。现在要在小票前打印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发给你