文章页面 如何调取打印机 HTML+

<!DOCTYPE html>
<html>
<head>
	<title></title>
</head>
<script >
	// 调用打印机 js核心代码
    function printPartOfDocument() {  
        this.init.apply(this, arguments)  
    }  

    printPartOfDocument.prototype = {  

        init: function(o, part) { 
            this.o = this.getId(o);  
            this.part = this.getId(part);  
            this.frame = '';  
            this.printCss = '';  
            var _this = this;  
            this.addEvent(this.o, 'click',  
            function() {  
                _this.create()  
            });  
        },  

        create: function() {  

            var _this = this;  
            if (!this.frame) { 
                var oFrame = document.createElement('iframe');  
                oFrame.setAttribute('id', 'printIframe');  
                oFrame.style.position = 'absolute';  
                oFrame.style.left = '-9999px';  
                document.body.appendChild(oFrame);  

            }  

            if (!this.printCss) this.printCss = this.getPrintCss();

            setTimeout(function() {  
                _this.frame = document.getElementById('printIframe'),  
                d = _this.frame.contentWindow.document,  
                h = d.getElementsByTagName('head')[0],  
                b = d.getElementsByTagName('body')[0];  

                for (var i = 0; i < _this.printCss.length; i++) {  

                    h.appendChild(_this.printCss[i]);  

                }  

                b.innerHTML = '';  
                b.appendChild(_this.part.cloneNode(true));  
                _this.frame.contentWindow.print();  

            },  

            0);  

        },  

        getPrintCss: function() {  
            var styles = document.getElementsByTagName('head')[0].getElementsByTagName('link'),  
            printCss = [];  

            for (var i = 0; i < styles.length; i++) {  

                var attr = styles[i].getAttribute('media');  

                if (attr == 'all' || attr == 'print') printCss.push(styles[i].cloneNode(true));  

            }  

            return printCss;  

        },  

        getId: function(el) {  

            return typeof el == 'string' ? document.getElementById(el) : el  

        },  

        addEvent: function(o, type, fn) {  

            if (o.addEventListener) {  

                o.addEventListener(type, fn, false)  

            } else if (o.attachEvent) {  

                o.attachEvent('on' + type,  

                function() {  

                    fn.call(o, window.event)  

                })  

            }  

        }  
    }  

</script>

<body>

	<!-- 要打印的内容 -->
	<div class="col-lg-12" id="print_content">
		123123 <br/>
		123123123 <br/>
		1231231231 <br/>
		123123123 <br/>
	</div>

	<!-- 点击打印 按钮 -->
	<div style="float:right">
	    <a href="javascript:void(0)" title="print" id="print" style="font-size:16px;border:1px solid #e5e5e5" >
	        打印
	    </a>
	</div>

</body>
</html>

<!-- 调用js函数 -->
<script>
	//  执行函数 ‘print’ 点击节点 打印按钮; print_content 要打印的内容
	new printPartOfDocument('print','print_content');  

</script>


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,electron调用打印机的步骤如下所示: 1. 首先,在主进程中创建一个BrowserWindow对象,并隐藏它(show: false)。 2. 在主进程的main.js中,监听渲染进程发送的消息,并在接收到消息时获取打印机列表。 3. 在渲染进程中,通过webview组件打开一个页面,并设置ref属性为printWebview,同时设置页面的URL。 4. 在渲染进程中,定义一个printView函数,该函数用于调用打印机进行打印操作。在该函数中,使用printWebview的print方法来触发打印操作,并传入相关参数,如是否静默打印、是否打印背景以及选择的打印机设备名称。 5. 在渲染进程中,定义一个getPrint函数,该函数用于发送消息给主进程,请求获取打印机列表。在接收到主进程返回的打印机数据列表后,可以进行相关操作,比如打印机选择等。 总结起来,electron调取打印机的过程包括创建BrowserWindow对象、监听渲染进程发送的消息、获取打印机列表、打开页面并设置ref属性、定义打印函数以及获取打印机列表等步骤。123 #### 引用[.reference_title] - *1* [electron 静默打印,及 打印机状态汇总](https://blog.csdn.net/weixin_41653910/article/details/91883521)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] - *2* *3* [electron+vue3+vite2 如何使用打印](https://blog.csdn.net/LGDmar/article/details/119700379)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值