window系统电脑或平板上的electron静默打印, 2018年10月更新_丁TT的博客-程序员资料

技术标签: 大前端  静默打印  electron  网页打印  框架  

最近有个需求,在window平板上实现打印,用户在平板上一顿操作之后,生成一个组合的页面,并将页面上的内容打印到纸张上带走。

首先需要在main.js里面添加如下代码,在主进程中,侦听渲染进程的打印事件。

const ipcMain = require('electron').ipcMain;

ipcMain.on("print", (event, arg) => {
	 
	//mainWindow 是打开的窗体
	mainWindow.webContents.print({
		silent: true, //静默
		printBackground: false, //是否打印网页背景
		deviceName: ''
	}, function(error) {

		
	})
});

在渲染进程中,需要使用以下代码。

	const ipcRenderer = require('electron').ipcRenderer;
	ipcRenderer.send('print', '');

如果不需要打印整个页面,可以考虑尝试将要打印的内容临时替换页面内容。

window.document.body.innerHTML=bdhtml;

我这个项目里,要把网页上一个异形区域打到胶版纸上,实际打出的大小受到网页大小/打印机设置/纸张大小三方面影响,如果你也有这种个性化打印需求的话,可以再探讨。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u010035608/article/details/82992731

智能推荐

vue中如何实现列表的详情页获取及渲染_vue中的列表页和详情页_殇陌离tk的博客-程序员资料

一、页面跳转方式在页面中有两种跳转方式,第一种跳转方式是使用 a 标签的形式进行跳转,也称之为标签跳转。第二种跳转方式是使用 window.location.href 的形式进行跳转,也称之为编程式跳转。在vue页面中,实现列表页跳转到详情页,也就有两种方式。第一种是标签式跳转,通过router-link的形式进行跳转。第二种是编程式跳转,通过 this.$router.push的形式进行...

STM32 CUBEMX 设置GPIO重映射_cube配置好引脚重映射之后主程序要干啥_qq_27215587的博客-程序员资料

STM32 外设默认引脚不合适,所以我研究了一下重映射功能。1. 中文参考手册## 2. CUBE 设置在右侧红框处,搜索 外设默认引脚位置鼠标悬停在引脚上,根据提示 Ctrl单击默认引脚 然后找到变色的 重映射引脚重映射引脚选择相应的功能后,默认引脚自动切换为 ResetMode ## 3. 标准库待补充4. 外设要先于引脚初始化...

Android性能优化篇_coralline_xss的博客-程序员资料

1、TraceView简介及实战     TraceView详细使用步骤     2、性能优化——数据库优化

2014西安CCPC网络赛 Game HDU - 5011 (nim博弈+SG函数)_71kg的博客-程序员资料

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5011题意:给你n堆石子,每个人可以选择一堆,取至少一个,取完之后这个人可以什么都不做,也可以把剩下的一堆分成两份sg打表之后发现每一堆的sg是石子个数,那么就是直接nim异或,和为0先手败,否则先手胜SG打表函数#include <bits/stdc++.h>usin...

分布式MQTT消息订阅-发布框架:高可用性ActiveMQ_分布式信息发布订阅框架_zhangphil的博客-程序员资料

分布式MQTT消息订阅-发布框架:高可用性ActiveMQActiveMQ是MQTT的一种实现。ActiveMQ基于JMS。ActiveMQ开发包下载地址:http://activemq.apache.org/download.htmlActiveMQ最适合做消息推送。国内很多厂商基于ActiveMQ改造出多种消息推送平台。下载完成ActiveMQ压缩包后解压,解压后直接在Java环境中运...

为什么苹果6没有录屏_为什么安卓的消息推送没有苹果好用?_weixin_39688870的博客-程序员资料

最近有小朋友问我:“缺姐姐,缺姐姐,为什么我从苹果手机换成安卓手机后收到消息经常延迟,甚至收不到呢?太误事了。”其实这是ios系统和Android系统推送机制不同导致的,那我就简单讲讲二者的不同吧。iOS的推送(APNs,即Apple Psuh Notification Service),是通过苹果自己的APNs服务进行的,苹果的每一台iPhone设备都有一个对应特定APP的唯一的设备标示: de...

随便推点

Servlet概要配置_无风不起浪起浪又怎样的博客-程序员资料

1 servlet继承于HttpServlet 简单使用如下: 2 代码  Japackage com.test.action;    import java.io.IOException;  import java.io.PrintWriter;    import javax.servlet.ServletException;  import jav

kubernetes集群实战——网络插件flannel和calico应用于跨主机调度通信_Li_barroco的博客-程序员资料

1. Flannel 跨主机通信解决上篇博客在访问时的跨节点流量卡顿问题承接上篇博客的公有ip172.25.12.100配置1.1 host-gw模式cp /home/kubeadm/kube-flannel.yml . ##将flannel.yml pod清单复制到当前目录下kubectl delete -f kube-flannel.yml ##删除之前应用的flannel网络插件vim kube-flannel.yml ##编辑kube-flannel.yml文件,将网络类型改为直接路由模

Visual Studio Code 运行html文件右键Open In Other Browsers提示找不到Chrome的解决办法_vscode使用谷歌浏览器找不到路径_fengyezi159的博客-程序员资料

vscode体积小,打开速度快,更强大的是拓展强大,虽然本身功能少,但是有个强大的拓展库。其他的IDE虽然功能强大,各种代码提示,但是免不了的原因是体积大,打开会慢。在写了个html网页后,用其他浏览器都可以打开网页,但是chrome浏览器是个例外,提示windows找不到chrome,下面提供一个方法解决vscode不能打开chrome的问题。因为chrome安装时不像其他软件的安装程序一样...

Linux ARM平台开发系列讲解(摄像头V4L2子系统) 2.12.5 V4L2 control的原理和实现_ais_v4l2_proxy_嵌入式内核源码的博客-程序员资料

既然涉及到视频输入,就会有很多与 相关的效果,比如对比度、饱和度、色温、白平衡等等,这些都是通用的、必须的控制项,并且大多数仅需要设置一个整数值即可。 内核中已经为我们提供了这个控制类型的,我们只需要明确自己需要添加什么控制类型,然后将其添加进内核中即可。该部分摄像头代码一半厂家会提供驱动或者相对应的参数,否则没有图像处理知识很难开发出来。返回总目录...

面试官喜欢问的 设计模式之工厂模式_扬帆向海 的博客-程序员资料

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这篇博客介绍了工厂模式,并有完整的代码实现。

How To: Make VirtualBox Use Your Router’s DHCP to get an IP Address in Linux_techradio的博客-程序员资料

How To: Make VirtualBox Use Your Router’s DHCP to get an IP Address in Linuxhttp://r3dux.org/2009/09/how-to-make-virtualbox-use-your-routers-dhcp-to-get-an-ip-address-in-linux/r3dux | Septembe

推荐文章

热门文章

相关标签