如何取得pos58打印机的状态。
如:
未开机
缺纸
正在打印
等等。
如何打印图片,设置字体。
这些要全部采用端口打印。。
如:
未开机
缺纸
正在打印
等等。
如何打印图片,设置字体。
这些要全部采用端口打印。。
解决方案 »
- delphi如何实现多条件模糊查询
- delphi如何限定图片大小.
- 请问FastReport的新版本可以解决中文字丢字问题吗?
- TreeView节点排列问题
- 程序自动显示出来当前缓冲区中的内容是十进制的数字,如何才能让它显示十六进制的?
- 我想编个小程序,功能是用户启动IE时要求输入密码,然后才能浏览网页,请大家提示一下。
- 我是VC程序员,现在想学Delphi,请推荐几本经典的好书!
- 有谁用过TdxDBGrid,我不知道怎样让SummaryFooter显示正确,急!!!!
- 祝贺!妈的,终于找到工作了!up有分!
- 一个摸不着头脑的问题.
- Delphi Tcxspinedit 控制不能输入
- cxGrid onFocusedRecordChanged事件
可用CREATEFILE以PRN为文件名生成一个文件,检测返回值,若成功则打印机可用,否则显示打印机故障。生成关于PRN的文件句柄后,可象普通文件一样向文件写入内容,比如WRITE,写完后关闭文件。 //从并行端口读取打印机状态 function GetPrinterStatus:byte; asm MOV DX,$379; IN AL,DX; end; //获取打印机是否出错 function CheckPrinter:boolean; var temp:byte; begin temp:=GetPrinterStatus; Result:=not ( ((temp and $80)=0) //打印机忙 or ((temp and $20) <> 0) //打印机缺纸 or ((temp and $10)=0) //打印机未联机 or ((temp and $08)=0) ); //打印机出错; end;
//可以用在网络或者本地打印机上.....
//得到本机或者网络上共享打印机的状态
//author:ginsonic
//zdcnow download from E-E
use winspool; function PrinterStatusText(Status: Integer): String;
begin
case Status of
0: Result := 'Waiting ';
JOB_STATUS_PAUSED: Result := 'Paused ';
JOB_STATUS_ERROR: Result := 'Error ';
JOB_STATUS_DELETING: Result := 'Deleting ';
JOB_STATUS_SPOOLING: Result := 'Spooling ';
JOB_STATUS_PRINTING: Result := 'Printing ';
JOB_STATUS_OFFLINE: Result := 'Offline ';
JOB_STATUS_PAPEROUT: Result := 'Paper Out ';
JOB_STATUS_PRINTED: Result := 'Printed ';
JOB_STATUS_DELETED: Result := 'Deleted ';
JOB_STATUS_BLOCKED_DEVQ: Result := 'Blocked ';
JOB_STATUS_USER_INTERVENTION: Result := 'User Intervention ';
JOB_STATUS_RESTART: Result := 'Restart ';
else Result := 'Status ' + IntToStr(Status);
end;
end; procedure GetJobs(PrinterName: String; JobList: TStrings);
const
InfoLevel = 1;
FirstJob = 0;
LastJob = 19;
var
Jobs: array [FirstJob..LastJob] of TJobInfo1;
PrinterHandle, BytesNeeded,NumJobs:Cardinal;
I: Integer;
begin
if OpenPrinter(PChar(PrinterName),PrinterHandle,nil) then
begin
if EnumJobs(PrinterHandle,FirstJob,LastJob+1,InfoLevel,@Jobs,SizeOf(Jobs),BytesNeeded,NumJobs) then begin
JobList.Clear;
for I := 0 to NumJobs-1 do
with Jobs[I] do
JobList.Add(Format( '%s(%s) ',[StrPas(pDocument),PrinterStatusText(Status)]));
end;
ClosePrinter(PrinterHandle);
end;
end; procedure TForm1.Button1Click(Sender: TObject);
begin
//放个memo1来显示状态和打印任务,注意改为你的打印机路径和名称
GetJobs( 'Star AR-3200+ ',Memo1.Lines);
end;
是epson的吗?
如果是的话,我有他们公司给我在内部使用的pdf文档,不知道值不值钱,从头到尾都标注着内部资料,机密文件
有需要在话我等下回去帮你找看看还在不在