有使用者提出jatoolsPrinter打印控件的功能需求如下:
打印前判断一下是真实打印机还是虚拟打印机,以防止有些需要打印份数限制的文档被打印到虚拟打印机后行形成电子文档,导致无法控制打印份数。
做为基本使用原理可以使用以下方法,来判断其是否为虚似打印机:
function isVirtualPrinter(){
var port = jatoolsPrinter.getPrinterInfo('联想 laser jet').port; // 通过jatoolsPrinter取得打印机的port
return port.match(/(usb|lpt|com)/i); // 一般不是虚拟打印机,都直接输出到 usb,lpt,com等物理端口
}
原理是取得打印机端口信息,一般虚拟打印机,不用物理端口,用一些非常怪的端口地址,下面是常用的虚拟打印机端口:
pdffactory : FPP3
pdfcreator: pdfcmon
xps writer: XPSPort
具体到jatoolsPrinter打印控件下的代码为:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="guide.css" />
<title>判断是否是虚拟打印机</title>
<OBJECT ID="jatoolsPrinter" CLASSID="CLSID:B43D3361-D075-4BE2-87FE-057188254255" codebase="jatoolsPrinter.cab#version=5,7,0,0"></OBJECT> //打印控件的设置(不需改动)
<script type="text/javascript">
function loadPrinters()
{
//打印文档对象
var printers = jatoolsPrinter.getPrinters(); // 打印机列表是一个字符串数组
if(printers)
{
for (i=0;i< printers.length;i++)
printer_list.options[i+1]=new Option(printers[i],printers[i]);
printer_list.options[0].selected = true;
}
}
function testVirtual()
{
if(printer_list.value)
{
var port = jatoolsPrinter.getPrinterInfo(printer_list.value).port;
var virtual = !port.match(/(usb|lpt|com)/i);
document.getElementById('isVirtual').innerText=virtual ? '是':'否';
}
}
</script>
</head>
<body onload='loadPrinters()'>
<p class="normal"> 选择打印机:
<select name="printer_list" onchange='testVirtual()'>
<option>--默认--</option>
</select>
<br>
虚拟打印机? <span style='font-weight:700' id='isVirtual'></span>
</p>
</body>有
</html>
当然如果你偏说要将虚拟打印机的端口设置为LPT3或其他没有用过的端口,那么也没办法,毕竟就现阶段而言window也没有相关的api来区分打印机是虚拟或是真实。
相关推荐
5. **VB_pirnt2.04.exe**:这个文件名暗示这可能是一个使用VB编写的程序,版本为2.04,专门用于打印机测试。".exe"是Windows系统的可执行文件扩展名,表示这是一个可以直接运行的程序。 6. **测试工具的功能**:该...
计算该日在本年中是第几天,注意闰年的问题。 2.编写一个函数print, 打印一个学生的成绩数组, 该数组中有5个学生的数据记录,每个记录包括num,name,score[3],用主函数输入这些记录,用print函数输出这些记录。 3....
8.18发烧购物节活动SOP - 电商日化行业+电商引流转化(5张子表全案)
网页设计期末大作业基于HTML+CSS的仿中国银行网站源代码.zip,个人经导师指导并认可通过的高分大作业项目,评审分98分,项目中的源码都是经过本地编译过可运行的,都经过严格调试,确保可以运行!主要针对计算机相关专业的正在做大作业的学生和需要项目实战练习的学习者,资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 网页设计期末大作业基于HTML+CSS的仿中国银行网站源代码.zip网页设计期末大作业基于HTML+CSS的仿中国银行网站源代码.zip网页设计期末大作业基于HTML+CSS的仿中国银行网站源代码.zip网页设计期末大作业基于HTML+CSS的仿中国银行网站源代码.zip网页设计期末大作业基于HTML+CSS的仿中国银行网站源代码.zip网页设计期末大作业基于HTML+CSS的仿中国银行网站源代码.zip网页设计期末大作业基于HTML+CSS的仿中国银行网站源代码.zip网页设计期末大作业基于HTML+CSS的仿中国银行网站源代码.zip网页设计期末大作业基于HTML+CSS的仿中国银行网站源代码.zip网页设计期
ntu嵌入式所有周实验文件
一款可以快速借助ChatGPT,快速生成大量原创有深度文章,快速丰富网站内容,完全免费,新建文章标题跟分类后,点击生成即可自动生成文章,生成后可以点击查看文章直达文章界面,分类可以设置不存在的,程序发现不存在会自动新建。
Adobe Camera Raw(RAW处理工具)v17.1.0.mp4
2024圣诞节倒计时页面源码.mp4
MaixPy机械臂井字棋游戏开发源码-最新开发(可比赛用).zip [资源说明] 1、该项目是团队成员近期最新开发,代码完整,资料齐全,含设计文档等 2、上传的项目源码经过严格测试,功能完善且能正常运行,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的高校学生、教师、科研工作者、行业从业者下载使用,可借鉴学习,也可直接作为毕业设计、课程设计、作业、项目初期立项演示等,也适合小白学习进阶,遇到问题不懂就问,欢迎交流。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 5、不懂配置和运行,可远程教学 欢迎下载,学习使用!
理工大学本科毕业设计-基于深度学习的行人重识别系统python源码.zip,个人经导师指导并认可通过的毕业设计项目,评审分98分,项目中的源码都是经过本地编译过可运行的,都经过严格调试,确保可以运行!主要针对计算机相关专业的正在做毕业设计的学生和需要项目实战练习的学习者,资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 理工大学本科毕业设计-基于深度学习的行人重识别系统python源码.zip理工大学本科毕业设计-基于深度学习的行人重识别系统python源码.zip理工大学本科毕业设计-基于深度学习的行人重识别系统python源码.zip理工大学本科毕业设计-基于深度学习的行人重识别系统python源码.zip理工大学本科毕业设计-基于深度学习的行人重识别系统python源码.zip理工大学本科毕业设计-基于深度学习的行人重识别系统python源码.zip理工大学本科毕业设计-基于深度学习的行人重识别系统python源码.zip理工大学本科毕业设计-基于深度学习的行人重识别系统python源码.zip理工大学本科毕业设计-基
感恩母恩母爱如水母亲节主题班会
基于java的同城宠物喂遛系统设计与实现.docx
乱七八糟聚合类工具箱v1.3.86应有尽有高级版.mp4
安卓一木记账v5.8.90解锁VIP绿化高级版.mp4
Comsol经典小案例。 晶格耦合作用结构色,CIE1931计算与绘制。
2021中国新锐品牌发展研究:食品饮料行业报告
YS9082HP_033_HPS1A30C_N38A
LOL英雄联盟2012怀旧网单.mp4
2020林达阳光新城抖音直播售房脚本
【python上位机开发】(整套源码)