之前博文介绍过获取打印机状态码 LODOP获取打印机状态码和状态码含义测试,但是打印机种类千差万别,状态码不一定准确,特别是打印成功的状态码,获取任务不在队列,可以判断打印成功,删除任务也是任务不在队列了。
本人使用过的软件不多,税务局的开票软件等均没有提示打印成功的方式,有次自己没连打印机,处于脱机状态,点了打印没有反应,一看还会没把usb接口插上,插上之后又开始打印了。

个人认为可以不加判断打印成功,如果想要加,可以加个简单的,直接过去pirnt的返回值,判断是否已发送了打印的指令,发送了指令就进入了打印机队列进行排队了,这时候可以当作打印成功。至于究竟是脱机了还是缺纸了,打印机打印不出来,这由于这种状态码不同打印机标准不一定准确,所以还是交给用户人工排查打印机是否连上了之类的。

简单的判断打印成功的方法:
这里用的是PRINTA,PRINTA和PRINT的区别是,PRINTA也是直接打印,但是打印前会弹出打印机选择框。
如图,混合部署还是要写两个方法,判断为c-lodop用回调,判断为lodop插件直接返回,关于回调前面有很多博文都用到了这里不再说明。
如果是集中打印AO打印等,用的都是直接c-lodop,(客户端本地打印角色,也可修改lodopFuncs.js里needclodop判断返回true,也可以只用c-lodop,关于使用的写法前面一些博文有介绍,如Lodop打印控件在页面如何使用)那么判断的时候就不用兼容写法了,直接用回调取返回值就行了。
代码:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>WEB打印控件LODOP</title>
<script language="javascript" src="LodopFuncs.js"></script>
<script src="http://localhost:8000/CLodopFuncs.js?name=LODOPA"></script>
</head>
<body>
<a href="javascript:prn1_preview()">返回打印是否成功(成功是发送了打印指令,进入了队列算打印成功)</a><br>
<a href="javascript:prn2_preview()">只使用c-lodop的,例如集中打印AO打印等,这里用locahost测试代指</a><br>
<script language="javascript" type="text/javascript">
var LODOP; //声明为全局变量
function prn1_preview() {
LODOP=getLodop();
LODOP.PRINT_INIT("");
LODOP.ADD_PRINT_TEXT(4,62,150,40,"一个文本");
//云打印C-Lodop返回结果用回调函数:
if (LODOP.CVERSION) {
CLODOP.On_Return=function(TaskID,Value){ if (Value) alert("已发出实际打印命令!"); else alert("放弃打印!"); };
LODOP.PRINTA();
return;
};
//控件返回结果用语句本身:
if (LODOP.PRINTA())
alert("已发出实际打印命令!");
else
alert("放弃打印!"); };
function prn2_preview() {
LODOPA.PRINT_INIT("");
LODOPA.ADD_PRINT_TEXT(5,62,150,40,"文字");
LODOPA.On_Return=function(TaskID,Value){ alert("打印结果:"+Value); };
LODOPA.PRINTA();
};
</script>
</body>

图示:

LODOP获取打印成功,是否加入队列的更多相关文章

  1. lodop和c-lodop通过打印状态和任务不在队列获取打印成功

    之前的博文有通过判断pirnt的返回值,判断加入队列算打印成功,建议使用这种简单的判断方法.此外还有其他判断方法,例如通过PRINT_STATUS_OK判断,但是这个状态不是所有打印机能支持这种判断成 ...

  2. LODOP获取打印状态码和时间列表

    之前有博文介绍获取打印状态码和打印状态码的含义,相关博文:LODOP获取打印机状态码和状态码含义测试.此外 ,也有获取状态码及其变化的方法,可以获取打印状态码的列表,列表包含每个状态和每个状态的时间. ...

  3. LODOP 获取打印设计代码不带INIT初始化语句

    前面的博文生成JS代码模版和文档式模版,生成的是带初始化语句的模版,如果想要打印多个,可以循环多个任务,什么是一个任务,可查看本博客相关博文:Lodop打印语句最基本结构介绍(什么是一个任务)一个任务 ...

  4. LODOP获取打印机状态码和状态码含义测试

    由于打印机千差万别,打印机执行的标准也不一样,LODOP获取的打印状态码也可能不同,安装了个打印机驱动实际测试一下,测试的打印机驱动是Brother Color Type3 Class Driver. ...

  5. LODOP判断没成功发送任务-重打一下

    一般情况下打印执行了PRINT()或PRINTA(),就会加入打印机队列,如果打印机脱机,就会在队列里排队,当打印机连上并取消脱机的时候,正在排队的任务就会打出,所以一般建议用是否加入队列来判断打印成 ...

  6. lodop判断是否打印成功

    需要引用js <script src="js/jquery-3.3.1.js"></script> <script src="js/Lodo ...

  7. 前端使用lodop如何获取打印状态

    前面已经说过,如何简单使用lodop了,今天说一下如何获得lodop的打印状态? 在教程里面找了半天,摸索出来了一套. template: <!-- 实验代码 --> <div> ...

  8. C# Lodop实现打印

    项目的Debug文件夹下有个template文件夹,里面有用到的js.自己建的要打印的网页和用到的背景图 1.打印方法: class print { public void printzb(strin ...

  9. Lodop获取全部JS代码,传统JS模版的生成

    Lodop模版有两种方法,一种是传统的JS语句,可以用JS方法里的eval来执行,一种是文档式模版,是特殊格式的base64码,此篇博文介绍传统JS模版的生成方法.两种模版都可以存入一下地方进行调用, ...

随机推荐

  1. 你的响应阻塞了没有?--Spring-WebFlux源码分析

    1. Spring WebFlux是什么? Spring WebFlux是Spring Framework 5.0中引入的新的反应式Web框架. 与Spring MVC不同,它不需要Servlet A ...

  2. rabbitmq高级消息队列

    rabbitmq使用 什么是消息队列 消息(Message)是指在应用间传送的数据.消息可以非常简单,比如只包含文本字符串,也可以很复杂,可以包含嵌入对象. 消息队列是一种应用间的通信方式,消息发送后 ...

  3. Asp.Net Core在CentOS部署与注意

    部署具体步骤参考:将ASP.NET Core应用程序部署至生产环境中(CentOS7) 1.wwwroot是放静态文件的,Startup的配置里面要app.UseStaticFiles(); 2.在不 ...

  4. [转]Blue Prism Interview Questions and Answers

    本文转自:https://www.rpatraining.co.in/blue-prism-interview-questions/ What is a Visual Business Object? ...

  5. Git 安装配置手册

    Git 安装配置手册 首先我们要了解 Git 是类似于 SVN 用来管理项目的 首先要先下载 Git ,这个东西相当于一个核,是该功能的核心 下载地址(<https://gitforwindow ...

  6. 从零开始学安全(四十三)●Wireshark分析ICMP(IP)协议

    存活时间与IP分片 这里我们首先来研究一下关于IP协议的两个非常重要的概念:存活时间与IP分片.存活时间(TTL,Time to Live)用于定义数据包的生存周期,也就是在该数据包被丢弃之前,所能够 ...

  7. 观察者模式 Observer 发布订阅模式 源 监听 行为型 设计模式(二十三)

    观察者模式 Observer 意图 定义对象一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖他的对象都得到通知并自动更新. 别名:依赖(Dependents),发布订阅(Publish-Su ...

  8. SQL Server含逗号分隔的数据匹配维表

    日常有时候导出数据需求时,数据列会遇到带有分隔符的ID,但又需要匹配维表(如下图所示)将ID变成名称. 这种情况可以采用“分隔-匹配-合并”的方法 具体代码为: -- 准备工作1:创建事实表数据 CR ...

  9. Swift中的for循环基本使用

    OC中的for循环写法: ;i < ;i++) { NSLog(@"i=%zd",i); } Swift中的for循环写法: let a = ; ..< a { pri ...

  10. 如何取消Microsoft账户登录电脑

    手贱用Microsoft账户登录了一下笔记本里面的日历,TNND微软直接就把你电脑的登录账户直接改成了微软账户,花了1个小时才搞回去. 步骤如下: 0--脑残微软的设计,点了下日历,弹出下面这个,绝对 ...