## 演示如何获得打印状态及控制打印：

由于Windows下打印一般采用后台服务完成，也就是说样例35返回的“打印成功”实际仅是成功加入后台队列，

要获得后台真实打印的状态变化以及最终是否打印成功结束，需要采用如下捕获语句：

LODOP.SET_PRINT_MODE("CATCH_PRINT_STATUS",true);

执行该语句之后，PRINT指令不再返回那个所谓“打印成功”，而是该任务的JOB代码（打印机序号和JOB序号组成）。

有了该JOB代码，可以用GET_VALUE("PRINT_STATUS_XXX","JOB代码值")语句获得打印状态信息及最终结果。

这与样例28方法不同的是，即便打印任务消失之后仍能查询，也可以循环查询，等待某个状态出现。

下面演示：

1、先点执行打印获得该打印的JOB代码：

2、(1-成功 0-不成功)
3、(1-在 0-不在,可能已打完或未打而删除)
4、(含义见后面解释)
5、
6、
7、
8、
9、
10、
11、(1-忙碌 0-不忙碌)
12、由于打印能并发执行，所以哪怕上面的打印任务还没有完成，

现在也可以另外执行一个打印（产生新JOB代码:） 并等待其打印成功状态出现:

等待过程中可以用如下语句对该打印机进行暂停打印、恢复打印及清理打印任务三项控制：
LODOP.SET_PRINT_MODE("CONTROL_PRINTER:打印机名称或序号","PAUSE");
LODOP.SET_PRINT_MODE("CONTROL_PRINTER:打印机名称或序号","RESUME");
LODOP.SET_PRINT_MODE("CONTROL_PRINTER:打印机名称或序号","PURGE");
先试试暂停打印， 暂停后恢复打印， 或清理其所有打印任务(清理过程稍等待)。

打印状态代码含义：

状态代码是一个枚举组合值，有如下信息所代表的数字合计而成。

1-已暂停 2-错误 4-正删除 8-进入队列 | 16-正在打印 32-脱机 64-缺纸 128-打印结束 | 256-已删除 512-堵塞 1024-用户介入 2048-正在重新启动

13、前面的已经打印成功是通过“状态码包含128”且“JOB已不在队列”来判断的，但有些打印机输出完毕状态码不变成128，

而一直等于20（“正在打印16”和“正在删除4”之和），此时页面程序需要针对这种打印机进行附加判断。事实上多数情况下

判断“JOB不在队列”就足可认定已经打印成功！

下面演示逐个打印，也就是前面成功或删除了才继续打印下一个(演示中选“取消”就中断循环)：

开始循环打印:

<回样例目录