LODOP获取打印机状态码和状态码含义测试
由于打印机千差万别,打印机执行的标准也不一样,LODOP获取的打印状态码也可能不同,安装了个打印机驱动实际测试一下,测试的打印机驱动是Brother Color Type3 Class Driver。
用LODOP获取打印机状态码,和打印机队列的状态对比一下,分别是打印机错误,正在排队,和脱机。
1.该打印机队列里该任务呈现的是:错误-正在打印
用LODOP获取的打印状态码8210,状态码含义是 错误-正在打印
LODOP获取的和打印机队列一致。
2.该打印机队列里该任务呈现的是:状态是空,但是有打印任务,进入了队列,正在排队
用LODOP获取的打印状态码0,状态码含义是 进入队列
LODOP获取的和打印机队列一致。
3.该打印机队列里该任务呈现的是:打印机脱机(手动设置了该打印机的脱机状态)
用LODOP获取的打印状态码0,状态码含义是 进入队列
LODOP获取的和打印机队列一致,但是没有获取到脱机状态。
所以用LODOP获取某种打印机的状态码,建议实际测试一下,如果状态码不正确,应该是该打印机的标准不一样,如果想要获取打印成功,可以判断job不在队列,或直接判断打印返回值加入队列算成功,关于打印成功,这两种,可查看本博客的另一篇博文:
注意:加上这句,LODOP.SET_PRINT_MODE("CATCH_PRINT_STATUS",true);,PRINTA的返回值才会是job代码。不加这句,可以直接判断PRINTA的返回值,通过该语句是否执行加入队列,这种简单的方法判断打印成功。简单方法:
测试代码:
如本文中,获取的状态码为8210,获取的状态码含义是 错误-正在打印。
状态码是一个枚举组合值,是数字合计值。例如:1-已暂停,2-错误,4-正删除,8-进入队列,16-正在打印........等
状态码除以1024,取余数,可以得到合计值,然后根据合计值可以对照信息找到状态码含义,LODOP本身可以直接获取状态码含义,可以直接获取本文的这个状态码含义。
8210/1024=8.017......(用电脑自带的计算器算的结果)
8*1024=8192(可以整除出来的数值)
8210-8192=18(得到的余数)
18=2+16=错误+正在打印。所以该状态码代表的含义是错误,正在打印。
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>WEB打印控件LODOP</title>
<script language="javascript" src="LodopFuncs.js"></script>
</head>
<body>
<a href="javascript:prn1_preview()">获取打印job代码</a>
<input type="text" id="T1" size="20" value=""><br>
<a href="javascript:prn2_preview()">获取打印状态码</a>
<input type="text" id="T2" size="20" value=""><br>
<a href="javascript:prn3_preview()">获取打印状态码含义</a>
<input type="text" id="T3" size="20" value=""><br>
<script language="javascript" type="text/javascript">
var LODOP; //声明为全局变量
function prn1_preview() {//获取job代码
LODOP=getLodop();
LODOP.PRINT_INIT("");
LODOP.ADD_PRINT_TEXT(50,231,260,39,"一个文本");
LODOP.SET_PRINT_MODE("CATCH_PRINT_STATUS",true);
if (LODOP.CVERSION) {
LODOP.On_Return=function(TaskID,Value){document.getElementById('T1').value=Value;};
LODOP.PRINTA();
} else document.getElementById('T1').value=LODOP.PRINTA();
};
function prn2_preview() {//获取打印状态码
LODOP=getLodop();
if (LODOP.CVERSION) CLODOP.On_Return=function(TaskID,Value){document.getElementById('T2').value=Value;};
var stResult=LODOP.GET_VALUE("PRINT_STATUS_ID",document.getElementById('T1').value);
if (!LODOP.CVERSION) document.getElementById('T2').value=stResult;
};
function prn3_preview() {//获取该打印状态码的含义
LODOP=getLodop();
if (LODOP.CVERSION) CLODOP.On_Return=function(TaskID,Value){document.getElementById('T3').value=Value;};
var stResult=LODOP.GET_VALUE("PRINT_STATUS_TEXT",document.getElementById('T1').value);
if (!LODOP.CVERSION) document.getElementById('T3').value=stResult;
};
</script>
</body>

LODOP获取打印机状态码和状态码含义测试的更多相关文章
- LODOP获取打印状态码和时间列表
之前有博文介绍获取打印状态码和打印状态码的含义,相关博文:LODOP获取打印机状态码和状态码含义测试.此外 ,也有获取状态码及其变化的方法,可以获取打印状态码的列表,列表包含每个状态和每个状态的时间. ...
- LODOP获取打印成功,是否加入队列
之前博文介绍过获取打印机状态码 LODOP获取打印机状态码和状态码含义测试,但是打印机种类千差万别,状态码不一定准确,特别是打印成功的状态码,获取任务不在队列,可以判断打印成功,删除任务也是任务不在队 ...
- python(30) 获取网页返回的状态码,状态码对应问题查询
获取访问网页返回的状态码 html = requests.get(Url) respon = html.status_code 以下内容来自于维基百科:点击查看网页 1xx消息 这一类型的状态码,代表 ...
- [Hadoop] - TaskTracker源码分析(状态发送)
TaskTracker节点向JobTracker汇报当前节点的运行时信息时候,是将运行状态信息同心跳报告一起发送给JobTracker的,主要包括TaskTracker的基本信息.节点资源使用信息.各 ...
- HttpURLConnection(http 1.1) 用法、状态码、状态描述
最近研究了java的HttpURLConnection的用法, 这里简单的做一下记录: Java中可以使用HttpURLConnection来请求WEB资源. 1. URL请求的类别 分为二类,GET ...
- Vue源码探究-状态初始化
Vue源码探究-状态初始化 Vue源码探究-源码文件组织 Vue源码探究-虚拟DOM的渲染 本篇代码位于vue/src/core/instance/state.js 继续随着核心类的初始化展开探索其他 ...
- Vben Admin 源码学习:状态管理-错误日志
0x00 前言 本文将对 Vue-Vben-Admin 的状态管理实现源码进行分析解读,耐心读完,相信您一定会有所收获! 0x01 errorLog.ts 错误日志 文件 src\store\modu ...
- Vben Admin 源码学习:状态管理-角色权限
前言 本文将对 Vue-Vben-Admin 角色权限的状态管理进行源码解读,耐心读完,相信您一定会有所收获! 更多系列文章详见专栏 Vben Admin 项目分析&实践 . 本文涉及到角 ...
- 网页状态码(HTTP状态码)。
网页状态码(HTTP状态码). 状态码 说明 详情 100 继续 请求者应当继续提出请求.服务器已收到请求的一部分,正在等待其余部分. 101 切换协议 请求者已要求服务器切换协议,服务器已确认并准备 ...
随机推荐
- 目标检测 非极大值抑制(Non-Maximum Suppression,NMS)
非极大值抑制(Non-Maximum Suppression,NMS),顾名思义就是抑制不是极大值的元素,可以理解为局部最大搜索.也可以理解为只取置信度最高的一个识别结果. 举例:  如图所示,现在 ...
- Flink从入门到放弃(入门篇4) DataStreamAPI
戳更多文章: 1-Flink入门 2-本地环境搭建&构建第一个Flink应用 3-DataSet API 4-DataSteam API 5-集群部署 6-分布式缓存 7-重启策略 8-Fli ...
- asp.net 仿微信端菜单设置
第一步:添加引用文件 <link rel="stylesheet" href="~/assets/css/bootstrap.min.css"> & ...
- js对象数组(JSON) 根据某个共同字段 分组
首先判断 var arr = [ {"id":"1001","name":"值1","value": ...
- Git日常须知
基本操作: git init 初始化环境 git add . 管理文件 git status 查看状态 git diff 文件名 查看修改内容 git commit -m '' 提交文件 git lo ...
- CSS3文字与字体 text-overflow 与 word-wrap
text-overflow 对象内的文本溢出部分采用省略“...”标记 或者 剪切: text-overflow:elip(超出容器边界的内容剪切掉) | ellipsis(超出容器边界内容省略标示 ...
- vue px 转rem
来自:https://www.cnblogs.com/wangqiao170/p/8652505.html 侵 删 每一个认真生活的人,都值得被认真对待 vue px转换为rem 前端开发中还原设 ...
- 《JavaScript高级程序设计》笔记:客户端检测(九)
能力检测 在编写代码之前先检测特定浏览器的能力.例如,脚本在调用某个函数之前,可能要先检测该函数首付存在.这种检测方法将开发人员从考虑具体的浏览器类型和版本中解放出来,让他们把注意力集中到相应的能力是 ...
- MyDAL - 引用类型对象 .DeepClone() 深度克隆[深度复制] 工具 使用
索引: 目录索引 一.API 列表 .DeepClone() 用于 Model / Entity / ... ... 等引用类型对象的深度克隆 特性说明 1.不需要对对象做任何特殊处理,直接 .Dee ...
- JQ表格隔行换色
<style type="text/css"> html, body { margin: 0; padding: 0; font-size: 15px; font-fa ...