如何做打印,餐饮软件,分凉菜、热菜、酒水三个地方三台打印机 ( 积分: 100 )

  • 主题发起人 主题发起人 shirleyttt
  • 开始时间 开始时间
S

shirleyttt

Unregistered / Unconfirmed
GUEST, unregistred user!
客人点完菜后,将菜单分送到各个地方(凉菜、热菜、酒水)打印机上打印出来。
请问用程序怎么写来控制打印,怎样设置打印机,改变默认打印机吗?
需要每个包厢里的电脑都安装这三台打印机的驱程吗?
 
客人点完菜后,将菜单分送到各个地方(凉菜、热菜、酒水)打印机上打印出来。
请问用程序怎么写来控制打印,怎样设置打印机,改变默认打印机吗?
需要每个包厢里的电脑都安装这三台打印机的驱程吗?
 
执行打印的程序安装在哪里,哪里就要安打印程序,用几个打印机,就安装几个相应的打印程序
下面是同时在两个不同地方执行打印的示例:
测试:两台打印机同时打印测试。
结论:最先安装的打印机的PrinterIndex为最大值1,最后安装的打印机的PrinterIndex为最小值0
with Printerdo
begin
PrinterIndex:=0;
begin
Doc;
Canvas.Font.Name:='楷体_GB2312';
Canvas.Font.Size:=22;
Canvas.Font.Style:=[fsBold];
Canvas.TextOut(50,50,'打印一测试!');
Canvas.TextOut(50,100,'打印一测试!');
endDoc;
PrinterIndex:=1;
begin
Doc;
Canvas.Font.Name:='楷体_GB2312';
Canvas.Font.Size:=22;
Canvas.Font.Style:=[fsBold];
Canvas.TextOut(50,50,'打印二测试!');
Canvas.TextOut(50,100,'打印二测试!');
endDoc;
end;
 
还有一点,要求安装的方式是网络打印机。
 
针对此问题建议:www.centrypilot.com看看人家的程序是怎么写的,
 
www.longmy.com 也不错
 
我也遇到这样的问题有谁能解决,奉上本人全部分数!!
 
采用不同的厨房出品,像吧台,热菜,凉菜,就行了
 
查找所有安装的打印机,并返回打印机安装序号
function TwsInfo.pfSetPrint(APrintName: String):integer;
var
j:integer;
begin

if Printer.Printers[Printer.PrinterIndex] <> APrintName then
//APrintName就是打印机名
begin
j:=0;
try
while Printer.Printers[j]<>APrintNamedo
begin
j:=j+1;
end;
//end of while
Result :=j;
except
ShowMessage(' 找不到 '+APrintName+' 打印机,请重新安装该打印机');
end;
//end of try
end //end of if
else
begin
Result := Printer.PrinterIndex;
end;
//ene of else
end;

然后如果是打印控件的话都有一个PrinterSettings.PrinterIndex属性,设定就可以了。
以下的设定默认打印机的程序,但是不推荐这样的方式。因为对其它程序不友善。
with Printerdo
begin
PrinterIndex:=cbPrinters.ItemIndex;//这个就看你用什么方式得到打印机的安装号了。这里是将所有打印机的安装号已经写入了一个ComboBox里。
TempStr1:=Printers[PrinterIndex];
System.Delete(TempStr1,Pos('on',TempStr1),Length(TempStr1));
IniFile:=TIniFile.Create('WIN.INI');
try
TempStr2:=IniFile.ReadString('Device',TempStr1,'');
IniFile.WriteString('windows','device',TempStr1+','+TempStr2);
StrCopy(S,'windows');
//SendMessage(HWND_BROADCAST,WM_WININICHANGE,0,LongInt(@S));
SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,LongInt(@S));
//一个是98的,一个是2000的。给所有窗口发送默认打印机已改变的消息。
finally
IniFile.Free;
end;
end;
 
当然要用非默认打印机来打印。。。
而打印机的设置建议用网络打印机来,而不是用共享打印机。这样速度更快。
这样,打印机安装在交换机上或hub上。服务器机子上增加三个打印机,关设置端口(就是打印机的ip地址)
 
共享打印机, 在报表中分别设置好.
可以做凉菜、热菜、酒水三个报表. 也可以做一个报表,分别判断后设置打印机.
 
多人接受答案了。
 
后退
顶部