如何能真正的检测打印机是否存在(即连线好了),
以及打印机的状态,特别是当出现错误时能响应消息,如缺纸,卡纸,短线
没墨等等
以及打印机的状态,特别是当出现错误时能响应消息,如缺纸,卡纸,短线
没墨等等
解决方案 »
- 使用存储过程删除数据的问题
- 关于TWebBrowser的URL判断问题
- 关于FastReport动态生成报表的问题(希望有耐心的朋友可以进来详细解答)
- 為什麼DELPHI沒有這個函數??
- regsvr32注册dll问题
- 有谁做过或者正在做jabber即时通讯的,请留下msn大家可以相互讨论!
- 我要根据ADO数据集是否调用了Updatebatch或CancelBatch,以便设定一些按钮的Enabled属性,怎么做?
- 为什么执行adoquery1.insert后,所增加的记录是在数据库的最后呢?
- 菜鸟提问:各位用的什么平台做DELPHI开发呢??
- 本人初学delphi请大家多指点!
- 怎么安装DevExpress套件?很急!
- 请大家帮忙解决一个Flash播放器中的几个问题
打印代码
except
不存在
end;
上面有你想要的打印技术等..
D6版本的没有噢..
检查 Printer.Printers 可以知道当前系统安装哪些了打印机。
如果用 Quick Report, 检查 QRPrinter.Status 或
QRPrinter.PrinterOK 可知道打印机是否就绪。
if DeviceHandle = 0 then
begin
Printer.PrinterIndex := Printer.PrinterIndex + 1;
printer.GetPrinter(ADevice,ADriver,APort,DeviceHandle);
end;
if DeviceHandle = 0 then
begin
application.MessageBox('没有发现打印机','错误',MB_OK+MB_ICONERROR);
exit;
end;
上一次我在哪一个贴子上有发啊..
function tform1.PrinterStatusText(Status: Integer): ='PRINTER_STATUS_BUSY';
PRINTER_STATUS_DOOR_OPEN :result:='PRINTER_STATUS_DOOR_OPEN';
PRINTER_STATUS_ERROR :result:='PRINTER_STATUS_ERROR';
String;
begin
case status of
PRINTER_STATUS_BUSY :result:='PRINTER_STATUS_BUSY';
PRINTER_STATUS_DOOR_OPEN :result:='PRINTER_STATUS_DOOR_OPEN';
PRINTER_STATUS_INITIALIZING :result:='PRINTER_STATUS_INITIALIZING';
PRINTER_STATUS_IO_ACTIVE :result:='PRINTER_STATUS_IO_ACTIVE';
PRINTER_STATUS_MANUAL_FEED :PRINTER_STATUS_ERROR :result:='PRINTER_STATUS_ERROR';
PRINTER_STATUS_INITIALIZING :result:='PRINTER_STATUS_INITIALIZING';
PRINTER_STATUS_IO_ACTIVE :result:='PRINTER_STATUS_IO_ACTIVE';
PRINTER_STATUS_MANUAL_FEED :result:='PRINTER_STATUS_MANUAL_FEED';
PRINTER_STATUS_NO_TONER :result:='PRINTER_STATUS_NO_TONER';
result:='PRINTER_STATUS_MANUAL_FEED';
PRINTER_STATUS_NO_TONER :result:='PRINTER_STATUS_NO_TONER';
PRINTER_STATUS_NOT_AVAILABLE :result:='PRINTER_STATUS_NOT_AVAILABLE';
PRINTER_STATUS_OFFLINE :result:='PRINTER_STATUS_OFFLINE';
PRINTER_STATUS_OUT_OF_MEMORY :result:='PRINTER_STATUS_OUT_OF_MEMORY';
PRINTER_STATUS_OUTPUT_BIN_FULL :PRINTER_STATUS_NOT_AVAILABLE :result:='PRINTER_STATUS_NOT_AVAILABLE';
PRINTER_STATUS_OFFLINE :result:='PRINTER_STATUS_OFFLINE';
PRINTER_STATUS_OUT_OF_MEMORY :result:='PRINTER_STATUS_OUT_OF_MEMORY';
PRINTER_STATUS_OUTPUT_BIN_FULL :result:='PRINTER_STATUS_OUTPUT_BIN_FULL';
PRINTER_STATUS_PAGE_PUNT :result:='PRINTER_STATUS_PAGE_PUNT';result:='PRINTER_STATUS_OUTPUT_BIN_FULL';
PRINTER_STATUS_PAGE_PUNT :result:='PRINTER_STATUS_PAGE_PUNT';
PRINTER_STATUS_PAPER_JAM :result:='PRINTER_STATUS_PAPER_JAM';
PRINTER_STATUS_PAPER_JAM :result:='PRINTER_STATUS_PAPER_JAM';
PRINTER_STATUS_PAPER_OUT :result:='PRINTER_STATUS_PAPER_OUT';
PRINTER_STATUS_PAPER_PROBLEM : PRINTER_STATUS_PAPER_OUT :result:='PRINTER_STATUS_PAPER_OUT';
PRINTER_STATUS_PAPER_PROBLEM :result:='PRINTER_STATUS_PAPER_PROBLEM';
PRINTER_STATUS_PAUSED :result:='PRINTER_STATUS_PAUSED';
PRINTER_STATUS_PENDING_DELETION :result:='PRINTER_STATUS_PENDING_DELETION';
PRINTER_STATUS_PRINTING :result:='PRINTER_STATUS_PRINTING';
result:='PRINTER_STATUS_PAPER_PROBLEM';
PRINTER_STATUS_PAUSED :result:='PRINTER_STATUS_PAUSED';
PRINTER_STATUS_PENDING_DELETION :result:='PRINTER_STATUS_PENDING_DELETION';
PRINTER_STATUS_PRINTING :result:='PRINTER_STATUS_PRINTING';
PRINTER_STATUS_PROCESSING :result:='PRINTER_STATUS_PROCESSING';
PRINTER_STATUS_TONER_LOW :PRINTER_STATUS_PROCESSING :result:='PRINTER_STATUS_PROCESSING';
PRINTER_STATUS_TONER_LOW :result:='PRINTER_STATUS_TONER_LOW';
PRINTER_STATUS_USER_INTERVENTION :result:='PRINTER_STATUS_USER_INTERVENTION';
PRINTER_STATUS_WAITING :result:='PRINTER_STATUS_WAITING';
PRINTER_STATUS_WARMING_UP :result:='PRINTER_STATUS_WARMING_UP';
end;
result:='PRINTER_STATUS_TONER_LOW';
PRINTER_STATUS_USER_INTERVENTION :result:='PRINTER_STATUS_USER_INTERVENTION';
PRINTER_STATUS_WAITING :result:='PRINTER_STATUS_WAITING';
PRINTER_STATUS_WARMING_UP :result:='PRINTER_STATUS_WARMING_UP';
end;
end;所有的状态都在上面了..你自已搞吧..
prnhandle:thandle;
begin
if openprinter('Epson LQ-1600K',prnhandle,nil) then
showmessage('success')
else
showmessage('no printer');
end;