js调用浏览器的打印功能

JavaScript014

js调用浏览器的打印功能,第1张

最近做了个运用浏览器打印合同的功能,之前没做过,记录一下其中遇到的问题,打印页面建议使用新开窗口 原型图如下: 页面内容不多说,表格直接用table绘制,在页面顶部加一个悬浮的打印按钮。点击打印按钮调用打印机(ctrl+p) 实现的打印预览效果如下图: 谷歌浏览器可在打印预览-更多设置-选项中去除页眉和页脚的勾选 打印的页面不可出现横向滚动条,否则会出现打印出来的内容显示不全的问题。

                var nt = new ActiveXObject("WScript.Network") //获取插件

                var oPrinters = nt.EnumPrinterConnections() //需要编写 ActiveX 控件来获得d打印机列表

                if (oPrinters == null || oPrinters.length == 0)

                {

                    alert('当前你的机器暂没安装打印机')

                    return

                } else

                {

                    //alert('当前打印机台数:'+oPrinters.length)

                }

                

                for (i = 0 i < oPrinters.length i += 2)

                {

                    var name = oPrinters.Item(i + 1)

                        if (name.indexOf("BTP-2200E") > -1)//判断当前的打印机名称是否是你想要修改的那台

                        {

                            nt.SetDefaultPrinter(name)//修改默认打印机

                            break

                        }

                    

                }

                //之后就是正常的打印动作了

js 没有这种能力,我们公司用到了一个打印插件 lodop 你可以百度下,非广告

你也可以找其他的插件

js 是没有控制硬件能力的,必须用其他的插件 提供接口给它调用 才可以打印相关

当然 默认的浏览器 也是有打印功能的,但不是很好用