Delphi下使用并口控制打印机使用Delphi编程的人员如果需要在Windows下使用并口打印机逐行打印,而又不想使用Windows的驱动程序。我们这里提供一种不需要任何外来的元件的方法。
Var F:TextFile;
Str:string;
Begin
try
Str:=’ 欢迎使用票据打印机!’+Chr(10);
AssignFile(F, 'LPT1');
Rewrite(F);
Write(F, Str);
CloseFile(F);
Except
Messagedlg('数据发送失败!',mterror,[mbok],0);
End;
end;
如果需要控制并口打印机开钱箱,也只需要重新给Str如下赋值:
Str:= Chr(27)+'p'+Chr(0)+Chr(25)+Chr(255);
Delphi下使用串口控制打印机使用Delphi编程的人员如果需要在Windows下使用串口控制顾客显示屏或串口打印机,就需要使用外来方式。我们这里提供了API_COM.DLL这个链接库供调用。
首先把API_COM.DLL文件复制到编写的源
程序目录下,接着在程序的开头声明调用的三个函数来源:
var
Form1: TForm1;
{加入下面三行声明}
function com_init(com:Integer; baud:Dword):Boolean;stdcall;external 'api_com.dll';
function com_rest:Boolean;stdcall;external 'api_com.dll';
function com_send(buf:PChar; len:Integer):Boolean;stdcall;external 'api_com.dll';implementation{$R *.DFM}Com_init(1,9600)是打开串口进行通讯,1是打开COM1,波特率为9600。如果打开成功,它会返回逻辑真告知串口打开。
Com_rest是关闭串口。
Com_send(命令,长度)是发送数据到串口。{在窗体创建时打开端口}
procedure TForm1.FormCreate(Sender: TObject);
begin
Com_init(1,9600);
end;{在按钮中发送内容}
procedure TForm1.Button1Click(Sender: TObject);
begin
Str=Chr(27)+Chr(112)+Chr(0)+Chr(25)+Chr(255);{控制打印机开钱箱指令}
if com_send(Pchar(Str),Length(Str)) then
begin
Label1.Caption :='已经发送命令';
end
else
begin
Label1.Caption :='发送失败';
end;
end;{在关闭窗体时关闭端口}
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Com_rest;
end;
上面语句是控制打印机开钱箱命令,其他的命令集只需要改变按钮中的Str的值即可:
下面是控制打印机打印出“欢迎使用GP系列票据打印机!”的命令:
Str=’欢迎使用GP系列票据打印机!’+Chr(13)
if com_send(Pchar(Str),Length(Str)) then
begin
Label1.Caption :='已经发送命令';
end
else
begin
Label1.Caption :='发送失败';
end;
1、控制POS机的客户显示屏
procedure TFrmMain.ShowMoney(Money_Port: String;Money_String:String);
//Moneey_Port 顾显接口Com1 or Com2 Money_String 顾显显示的内容
var
PrnFileName:TextFile;
begin
Assignfile(PrnFileName,Money_Port);
printer.Canvas.Font.Name:='宋体';
printer.Canvas.Font.Size:=8;
printer.Canvas.Font.Charset:=GB2312_CHARSET;
Rewrite(PrnFileName);
write(PRNFileName,chr(12)); //清除顾显
write(PRNFileName,chr(27)+chr(81)+chr(65)+Mon
ey_String+chR(13)); //显示信息
CloseFile(PRNFileName);
end;
2、不换页走纸的打印
procedure TFrmMain.AddPrintStrings(Strings: TStrings);
var
Prn: TextFile;
i:
word;
begin
Assignfile(Prn,'lpt1');
printer.Canvas.Font.Name:='宋体';
printer.Canvas.Font.Size:=9;
printer.Canvas.Font.Charset:=GB2312_CHARSET;
try
Rewrite(Prn);
try
for i := 0 to Strings.Count - 1 do
writeln(Prn, Strings.Strings[i]);
finally
CloseFile(Prn);
end;
except
on EInOutError do
MessageBox(Handle,PChar('文本打印出错!'),'警告',MB_ICONEXCLAMATION or MB_OK);
end;
end;
3、走纸换页的打印
procedure TFrmMain.PrintStrings(Strings: TStrings);
var
Prn: TextFile;
i: word;
begin
AssignP