`
hy_zhym
  • 浏览: 15669 次
  • 性别: Icon_minigender_1
  • 来自: 济南
文章分类
社区版块
存档分类
最新评论

js指定打印机进行打印。

阅读更多

最近遇到一个问题,客户方一台机器上连了很多打印机,让我们可以在进行不同业务的时候调用不同的打印机打印,找了很多资料,终于拼凑出能够解决的方法。

思路:通过修改默认打印机,进行打印,之后再把默认打印机改回原来的以便不影响客户的使用。

 

大体代码如下:

var defaultPrinter='${defaultPrinter}';//默认打印机(通过后台传过来的)
var printName='${printName}';//实际打印机(通过后台传过来的,页面上有个下拉框,列出了全部打印机名字)

var localtor=new ActiveXObject("WbemScripting.SWbemLocator");
var service=localtor.ConnectServer(".");
var properties=service.ExecQuery("SELECT * FROM Win32_Printer");
    //修改成指定打印机
    var e=new Enumerator(properties);
    for(;!e.atEnd();e.moveNext()){
        var p=e.item();
        if(p.Name==printName){ 
        	p.setDefaultPrinter();
        	break;
            }
        } 
		
execScript('document.getElementById("WebBrowser").execwb 6, 2, 3','vbscript');

//改回原默认打印机		
var el=new Enumerator(properties);
         for(;!el.atEnd();el.moveNext()){
         var p=el.item();
         if(p.Name==defaultPrinter){
        	p.setDefaultPrinter();
        	break;
            }
        }

 页面代码,包括显示所有打印机下拉列表

html:

<input type="checkbox" id="defaultPrinter" name="defaultPrinter" checked="checked" onclick="isSelectPrinter()"/>使用默认打印机&nbsp;&nbsp;&nbsp;&nbsp;                      
<div id="showPrinterList" style="position: absolute; top: 106.5mm; left: 143mm;">       
               请选择打印机:
        <select id="printer" name="printer" style="font-size: 12px;height: 16px;"></select>
       </div>

 

js:

//给checkbox和select赋值,赋值用的是jquery
function getPrintInfo(){
//系统信息获取
var localtor=new ActiveXObject("WbemScripting.SWbemLocator");
var service=localtor.ConnectServer(".");
    //取得默认打印机
var defaultPrint;
var defPrint=service.ExecQuery("SELECT * FROM Win32_Printer Where Default = TRUE");
var e=new Enumerator(defPrint);
    for(;!e.atEnd();e.moveNext()){
        var p=e.item();
        defaultPrint=p.Name
        } 
var properties=service.ExecQuery("SELECT * FROM Win32_Printer");
var e=new Enumerator(properties);
    for(;!e.atEnd();e.moveNext()){
        var p=e.item();
        if(p.Name==defaultPrint){
        $('#defaultPrinter').val(p.Name);       
        }
$("#printer").append("<option value='"+p.Name+"'>"+p.Name+"</option>");  
        }  
}

 

大体思路就是这样,由于本人也是第一次写,多以很多地方还可以优化,希望各位优化之后,回来再告诉我,十分感谢!

 

分享到:
评论

相关推荐

    实现打印页面带有指定的水印内容

    通过前台代码用于打印页面带有指定的水印内容,用于防伪和表明出处。所给代码是简易版的HTML页面,包含2部分,主体内容和附加水印

    js自定义区域打印

    js自定义区域打印,实现自定义区域打印,js调用打印机实现打印

    js实现调用浏览器打印功能

    该文件中是一段js调用 浏览器的 打印功能 实践, 其中 详细的说明和注释。 但是 如果你需要调用起打印机 的话, 则需要用户先行 绑定打印机设备, 确保可以在打印页面选择打印机, 适用大部分浏览器。

    js实现打印,可以自动分页!

    js打印,将数据读取到打印页面,用js截取,从而实现打印指定模块!打印的时候如果页面数据过多,打印机可以自动分页打印!我的是hp的打印机,下载的朋友可以试试!注意,本人声明:这个并不是针对于打印分页而写,...

    js 调用串口+使用 JS 获得串口数据+浏览器中使用js调用串口通讯.zip

    IE浏览器中访问COM口收发数据,可以访问com口打印机、GSM 猫、手机、串口扫描枪等设备,支持使用HEX 字节发送接收,更好地支持各种COM口设备,可以用于web系统中访问串口或者虚拟串口的硬件设备。

    html前台打印小票(免弹框)

    这是在网上找的一个打印的控件,还比较不错,可以指定打印机名称进行打印,并且不会像JS里面的window.print()会弹出选择打印机这个框,这一特点正好满足我的需求,现在上传上来供大家研究

    LODOP打印控件

    最新版本Lodop打印控件,可用于单页打印,多页连续打印。可设置符合产品需求的打印样式和设计

    Web打印控件(目前最强大最专业最新版本)

    控件功能强大,却简单易用,所有调用如同JavaScript扩展语句, 主要接口函数如下: PRINT_INIT 打印初始化 SET_PRINT_PAGESIZE 设定纸张大小 ADD_PRINT_HTM 增加超文本项 ADD_PRINT_TEXT 增加纯文本项 ADD_PRINT_TABLE ...

    Web打印控件

    web打印的好东西,千万不要错过,10分解决你Web打印问题,内附多种打印实例,简单实用,只能设置10分资源分,真想要50分!!! 专业WEB控件,用它既可裁剪输出页面内容,又可用程序代码生成复杂打印页。 控件功能...

    web打印控件

    &lt;br/&gt;功能介绍: 1 设置页眉页脚 2 指定纸张大小 3 设置纸张方向 4 设置页边距 5 选择指定的打印机 6 无需用户确认,JS直接调用打印预览 7 无需用户确认,JS直接调用打印...

    vue实现打印功能的两种方法

    主要介绍了vue实现打印功能的两种方法,文中通过两种方法给大家介绍了指定不打印区域的解决方法,需要的朋友可以参考下

    二维码,条形码,网页各类打印样式控件Lodop

    17如何发打印机指令或直接读写端口见样例十七 18如何打印幅面高度不固定的票据见样例十八 19如何内嵌显示及预览时包含背景图见样例十九 20如何强制分页并预览多页卡片见样例二十 21如何控制打印维护的功能权限见样例...

    JavaScript打印网页指定区域的例子

    JavaScript打印页面指定div区域原理:使用window.open()在浏览器打开一个新的页面(window), 使用 window.[removed]()将指定div区域的内容写入新窗口文档,document.close()关闭文档,使用window.print()调用打印机...

    转贴ReYoPrint (锐洋WEB打印控件)是一款实现网页套打的专用工具

    ReYoPrint是一个ActiveX WEB打印控件(96k,支持windows7及IE8,带数字签名), 这个控件主要实现对打印参数的控制,ReYoPrint使用户通过JavaScript脚本可以控制分页,页眉页脚,页边距,打印方向,自定义纸张,直接...

    jatoolsPrinter

    &gt;可以不显示票据,直接指定票据的url,进行打印。 &gt;支持票据及其附件的批量打印。 &gt;可以取得本机中的可用打印机,可用纸张类型列表,帮您设计出更友好的参数设置界面。 &gt;与您项目采用的技术标准无关,j2ee,.net...

    Lodop6.0web打印控件及技术手册

    Lodop设计者对WEB下的打印开发任务进行了分类汇总,高度抽象,设计出仅用几个功能函数,就可实现复杂的打印任务,尽量减少使用者的知识累赘。控件发布包有3个系统文件组成,全部功能用几个控件参数和2组功能函数来...

    jatoolsPrinter好用的WEB套打控件

    &gt;支持javascript设置打印参数,如输出打印机,页型,打印方向等 ,这使操作人员可以轻轻松松点击打印就可以了,不需要每次打印前手动修改这些参数。 &gt;某一票据的打印时打印参数自动保留,待下一次打印同一票据时,...

    electron-print-server:简单的HTTP打印服务器

    主要目的是允许从本地网络中的任何设备进行更快的打印(例如,与Google Cloud Print相比)和简单的打印服务器API GET /printers获取可用打印机的列表。 返回对象的JSON数组POST /print print-打印指定的URL。 请求...

Global site tag (gtag.js) - Google Analytics