请问如何在DELPHI中获取打印机的缺纸信息 ( 积分: 100 )

  • 主题发起人 主题发起人 NewLearner
  • 开始时间 开始时间
N

NewLearner

Unregistered / Unconfirmed
GUEST, unregistred user!
我使用的打印驱动是EPSON TM-H6000 No cut(票据打印机)
打印机的说明书有这个命令如下,我不知道具体在DELPHI里具体要怎么编程
=====================================================
ESC v
向主机传送打印机状态
格式: ASCII: ESC v
十进制: 27 118
十六进制: 1B 76
说明:向主机传送打印机状态,
当打印机接到该命令后,通过串行接口TXD向上位机传送一个字节
该字节各位的定义如下:
位 功能 值0/1
0 未定义 ┉ ┉
1 未定义 ┉ ┉
2 纸检测器 有纸 无纸
3 未定义 ┉ ┉
4 未 用 恒为0 恒为0
5 未定义 ┉ ┉
6 未定义 ┉ ┉
7 未定义 ┉ ┉
===========================================================
 
我想知道网络打印机的状态呵呵[:D]
这段代码给你用
function TestPrinterStatus(LPTPort: word): byte;
var
Status: byte;
CheckLPT: word;
begin

Status := 0;
if (LPTPort >= 1) and (LPTPort <= 3) then

begin

CheckLPT := LPTPort -1;
asm
mov dx, CheckLPT;
mov al, 0;
mov ah, 2;
int 17h;
mov &amp;Status, ah;
end;

end;

Result := Status;
end;

参数时打印机端口,返回值如下:
01h - Timeout
08h - I/O Error
10h - Printer selected
20h - Out of paper
40h - Printer acknowledgement
80h - Printer not busy (0 if busy)
 
xl4772答非所问,并且这段代码没用,win2000以上的操作系统就已经不支持了,不用试就知道会报错的
 
方法1:对打印机端口读写的时候会有返回值,不同的返回值代表着打印机所处的不同的状态,比如缺纸,缺墨的,都有,有些打印机的返回不是标准的,所以要参考打印机的参数。
方法2:用API函数GetPrinter和EnumJobs函数配合使用,适合于共享或本地打印机
网络打印机必须使用网络协议。
 
怎样使用网络协议啊??
为什么getprinter会报出错?我use了printers单元啊!
不知道delphi有没有类似的demo?!
 
为什么getprinter会报出错?
=========
可能涉及到权限。
 
后退
顶部