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 切换协议 请求者已要求服务器切换协议,服务器已确认并准备 ...
随机推荐
- 说说我为什么看好Spring Cloud Alibaba
最近对<Spring Cloud Alibaba基础教程>系列的催更比较多,说一下最近的近况:因为打算Spring Boot 2.x一起更新.所以一直在改博客Spring Boot专题页和 ...
- Hexo优化 | 创建sitemap站点地图并向Google提交
前言 站点地图是一种文件,您可以通过该文件列出您网站上的网页,从而将您网站内容的组织架构告知Google和其他搜索引擎.Sitemap 可方便管理员通知搜索引擎他们网站上有哪些可供抓取的网页.搜索引擎 ...
- Flutter 即学即用系列博客——09 MethodChannel 实现原生与 Flutter 通信(二)
前言 上一篇我们讲解了如何通过 EventChannel 实现 Android -> Flutter 的通信. 并且也看到了 Flutter 内部 EventChannel 源码也是对 Meth ...
- spring boot拦截器中获取request post请求中的参数
最近有一个需要从拦截器中获取post请求的参数的需求,这里记录一下处理过程中出现的问题. 首先想到的就是request.getParameter(String )方法,但是这个方法只能在get请求中取 ...
- Django学习之九: auth 认证组件
目录 Django auth 认证组件 配置使用auth组件及其中间件 request.user 可以直接在template模版中使用 auth组件常用api 获取认证model类 认证检测装饰器@l ...
- 获取url特定参数
获取通过url拼接的特定参数值: // 获取url指定参数 function getUrlParams(name) { var reg = new RegExp("(^|&)&quo ...
- 适合精致女孩使用的APP软件 不容错过的精彩人生
阳光下灿烂,风雨中奔跑,每个人都会遇见美丽的缘分,或深或浅,或浓或淡.所以人生不管遇到什么难题,都要勇往直前.今天分享的软件也是十分精彩的,非常适合精彩的你哦! 薄荷健康 薄荷健康APP是专为想要减肥 ...
- 【esri-loader】帮助文档翻译 part1 是什么,怎么安装,为什么要用它
是什么 esri-loader是一个JavaScript库(包/模块,Web模块化编程的概念),用于在非Dojo框架的Web页面中加载ArcGIS API for JavaScript 3.x或4.x ...
- Android为TV端助力之WebView开发踩坑一
在Android清单配置文件里面 自定义application时,在4.4系统上面不能加上一个属性,见下图 否则界面将不会显示任何数据,在更高或者更低的系统上面没有测试!
- 使用PDF.JS实现pdf文件在线预览时,报文件被损坏的错误
首先大概说明一下问题出现的背景:我用PDF.JS实现文件在线预览,参考网上的办法,在jsp文件中使用 <iframe src="<c:url value="js/gen ...