js调用浏览器的打印功能

JavaScript039

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

                        }

                    

                }

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

最近做一个后台管理系统,其中有个用户需求要求调用 浏览器打印 的功能去打印订单,本来以为需要用户手动( Ctrl+P )、或者打开 右键菜单 ,再选择打印功能。后来经过查询文档,JS提供了调用浏览器打印功能的API。

页面(全屏弹窗)内容设计如上图所示:

其中页面右下方有两个按钮:

这样可以调用浏览器打印功能,但是打印预览页面上会出现右下方的两个按钮,这肯定是用户不想看到的。

因此还需要根据 CSS媒体查询 来区分:

欢迎访问: 个人博客地址