读书人

怎样才能知道FastReport是否能成功打印

发布时间: 2012-03-09 16:54:56 作者: rapoo

怎样才能知道FastReport是否能成功打印?
如题,怎样才能知道FastReport是否能成功打印?

[解决办法]
查看打印任务
[解决办法]
对,查看打印任务队列里有没有任务了,给你个例子:
procedure TForm4.Timer1Timer(Sender: TObject);
var
LPHandle : THandle;//打印机句柄
LPStrBuf : Array [0..256] of Char;//打印机名称
NoJobs : Word; //希望获取的作业数
s : LongWord; //Job_Info的字节数
Job_Info : Array [0..100] of JOB_INFO_1; //打印队列信息
cbNeeded : Cardinal;
cReturned : Cardinal; //返回的作业数
printname,filename:string; //打印机名
inifile:TIniFile; //set.ini文件
begin
filename:=extractfilepath(application.ExeName)+ 'set.ini ';
inifile:=tinifile.Create(filename);
Printname:=inifile.ReadString( 'print ', 'printname ', 'EPSON BA-T500 Full cut '); //打印机名
inifile.Free; //清空
strpcopy(LPStrBuf,printname);//指定打印机名
//打开打印机
OpenPrinter(LPStrBuf,LPHandle,nil);

s:= Sizeof(Job_Info);
cbNeeded:=0;
cReturned:=0;
NoJobs:=100;
EnumJobs(LPHandle,0 ,NoJobs,1,@Job_Info,s,cbNeeded,cReturned);
// 显示打印队列信息

if (cReturned = 0) then //没有打印任务了
begin
Label1.Visible :=False;
Timer1.Enabled :=False;
Image1.Visible := True;
Form4.close;
end
else
begin
Image1.Visible:=False;
Label1.Visible :=True;
end;
end;
[解决办法]
根本不用判断是不是打印成功的。

我通常都是把打印预览界面调用出来,就可以了。由用户自己去决定是不是打印,自己去决定打印是不是成功 。
要是没成功,用户在点下打印按扭就行了。


[解决办法]
好象有的东西,必须要人来判断的。程序来判断总不是那么精准的。

读书人网 >.NET

热点推荐