LODOP设置打印机不存在不打印
LODOP中打印机的选择有优先级的存在,如果程序中指定的是错误的打印机,那么会走下一个优先级,这样,就可能存在选择了打印机无效,从默认打印机打印出来了,可以在代码里加判断避免这一点。
打印机优先级简介:
第一优先级:SET_PRINTER_INDEX等程序代码里指定的打印机。
第二优先级:上次在预览界面的打印设置中选择的打印机,Lodop按任务名对应记忆下来。
第三优先级:操作系统选择的默认打印机。
默认打印机优先级最低,当前两个优先级不存在或没生效时,会走最低的默认打印机优先级。
可以在预览或打印前,判断一下打印机是否存在,决定是否执行预览或打印命令,这种方法可避免走优先级输出到不必要的打印机上。
以下是lodop和c-lodop测试判断和不判断的区别和结果。(以PREVIEW预览为例)
lodop插件方式、不加判断:(弹出两次,一次提示不存在,关闭后弹出预览窗口)
第一步:弹出提示 打印机“(具体打印机名称或序号)”不存在。
第二步:关闭提示,点确定或叉号,弹出预览窗口。
lodop插件方式、加判断:(弹出一次,提示打印机不存在,不会弹出预览窗口)
弹出提示 打印机“(具体打印机名称或序号)”不存在。
不再弹出预览窗口。
c-lodop方式、不加判断:(弹出一次,弹出预览窗口)
弹出预览窗口。
c-lodop方式、加判断:(弹出0次,什么也不弹出)
不弹出预览窗口。
由于没设置任务名,也没上次预览的记录,所以当程序里指定一个错误的不存在的打印机的时候,以上测试中弹出预览的均为默认打印机,也就是走了其他优先级。
这样,如果打印的时候打印机不存在,就会出现在其他打印机打印的情况。
加了判断后的效果:
lodop弹出 打印机“(具体打印机名称或序号)”不存在,c-lodop什么也不弹出。
加了判断后,两者都不再走其他优先级进行预览或打印,避免了在其他打印机输出的情况。
具体方法:在打印或预览前判断一下打印机是否存在,不存在不执行打印方法,存在再执行。
if (LODOP.SET_PRINTER_INDEX("打印机名或序号"))//不存在的打印机
LODOP.PREVIEW();//判断为假,不执行该句
测试代码:
本人本机Brother Color Type3 Class Driver存在,在该打印机名称后面加了个1,Brother Color Type3 Class Driver1这个名称的打印机名称就不存在了。
<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()">打印预览</a><br>
<a href="javascript:prn2_preview()">打印预览(加了判断的)</a><br>
<script language="javascript" type="text/javascript">
var LODOP; //声明为全局变量
function prn1_preview() {
LODOP=getLodop();
LODOP.PRINT_INITA(12,13,500,300,"");
LODOP.SET_PRINTER_INDEX("Brother Color Type3 Class Driver1");//不存在的打印机
LODOP.ADD_PRINT_TEXT(10,10,100,20,"新加文本1");
LODOP.PREVIEW();
};
function prn2_preview() {
LODOP=getLodop();
LODOP.PRINT_INITA(12,13,500,300,"");
LODOP.ADD_PRINT_TEXT(10,10,100,20,"新加文本1");
if (LODOP.SET_PRINTER_INDEX("Brother Color Type3 Class Driver1"))//不存在的打印机
LODOP.PREVIEW();
};
</script>
</body>
图示:
LODOP设置打印机不存在不打印的更多相关文章
- LODOP纸张/打印机/份数/打印方向/双面打印 简短问答
纸张#如何设置纸张纸张设置,参考样例5 http://www.c-lodop.com/demolist/PrintSample5.html纸张的一些优先级 http://www.c-lodop.com ...
- LODOP设置同一个任务发送到不同打印机
前面的博文Lodop打印语句最基本结构介绍(什么是一个任务),一个任务只能有一个打印语句(最后PRINT,PRINTA,PREVIEW等),如果执行多个,LODOP会弹出多次,C-LODOP会提示窗口 ...
- LODOP设置打印份数及是否逐份输出
LODOP中通过SET_PRINT_COPIES可以设置打印份数,例如:LODOP.SET_PRINT_COPIES(2);//指定份数为2份 如果一个任务里有多页,打印份数的时候,有两种输出方式,一 ...
- LODOP获取打印机状态码和状态码含义测试
由于打印机千差万别,打印机执行的标准也不一样,LODOP获取的打印状态码也可能不同,安装了个打印机驱动实际测试一下,测试的打印机驱动是Brother Color Type3 Class Driver. ...
- LODOP不同打印机出现偏移问题
方法简单描述:1.精确套打,设置以纸张边缘为基点,可避免不同可打区域不同带了的影响.2.不同客户端打印机位置差异,可通过打印维护调整,结果在客户端本地.或调整打印机初始位置(本人使用的金税盘的开票软件 ...
- LODOP设置纸张无效问题
有的打印机不支持自定义纸张,或不支持当前设置的纸张尺寸,会造成纸张尺寸和代码里设置的尺寸不一致的情况.现象:1.代码一样,纸张语句设置正确,有的打印机纸张正常,有的打印机不正常.2.代码一样,纸张语句 ...
- LODOP设置判断后执行哪个
LODOP的语句是普通的语句,可以通过JS判断确定要执行哪个,或通过循环循环执行一些语句.如果需要执行某些打印项在哪些条件下不打印,不需要通过代码删除打印项,类似LODOP.SET_PRINT_STY ...
- Java实现POS打印机自定义无驱打印
Java实现POS打印机自定义无驱打印 热敏打印机使用越来越广泛,而安装驱动相当复杂,万幸的是,几乎所有的热敏打印机都支持ESC/P指令,参考网络上一些资料后,在此整理了一份自定义打印的方案 • 打印 ...
- 设置打印机共享,适用Win7、Vista、xp,不用密码
此处以HP M1213nf为例,其他型号大同小异. 1.设置打印机共享: "开始"→ "控制面板"→ "设备和打印机" 2.找到&quo ...
随机推荐
- 使用TTS实现Oracle跨版本迁移
TTS实现数据库迁移,具有速度快.支持跨平台和跨版本等优点.本文记录了用TTS从10g single迁移到11g RAC的过程. Source数据库版本和字符集设置: SQL> select * ...
- Spring容器的简单实现(IOC原理)
引言:容器是什么?什么是容器?Spring容器又是啥东西?我给Spring容器一个对象名字,为啥能给我创建一个对象呢? 一.容器是装东西的,就像你家的水缸,你吃饭的碗等等. java中能作为容器的有很 ...
- Java中volatile关键字解析
一.内存模型的相关概念 大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入.由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这时就存 ...
- 比起Windows,怎样解读Linux的文件系统与目录结构?
比起Windows,怎样解读Linux的文件系统与目录结构? Linux 和Windows的文件系统有些不同,在学习使用 Linux 之前,若能够了解这些不同,会有助于后续学习. 本文先对Window ...
- 2018年12月份GitHub上最热门的Java开源项目
来自:开源最前线(ID:OpenSourceTop) 链接:https://www.itcodemonkey.com/article/12747.html 又到了公布 GitHub 上热门项目的时候啦 ...
- Mysql多实例添加到开机自启的方法
Mysql多实例配置成功后,想让配置成开机自启. 首先看一下Linux启动的知识点,顺序如下. 1 加载内核2 执行init程序3 /etc/rc.d/rc.sysinit # 由init执行的第 ...
- C++类的描述
类的描述分为两个部分,public和private public可以用来定义函数,对类的对象进行操作,对于用户是可见的,是用户对对象操作的唯一手段. private部分用于定义函数和数据成员,这些函数 ...
- plw的晚餐(毒瘤题害我暴0)
题意 描述 plw吃完午饭之后,马上又觉得肚子饿了.他决定马上从美食区离开,赶往下一个吃饭地点"香香鸡".但是在plw离开离开美食区之前,需要按美食区的规矩画一个特殊符号,并且如果 ...
- Python+Appium学习篇之WebView处理
1.认识WebView 实例说明: 当你打开百度阅读APP→VIP全站去广告→用自带的 UI Automator去定位里面的元素,如图: 不管你去定位 '规则详情' '开通'等等,都会定位不到,只 ...
- Java使用Redis实现分布式锁来防止重复提交问题
如何用消息系统避免分布式事务? - 少年阿宾 - BlogJavahttp://www.blogjava.net/stevenjohn/archive/2018/01/04/433004.html [ ...