栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > Vue.js

electron-vue静默打印2019最新解决方案(含源码)

Vue.js 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

electron-vue静默打印2019最新解决方案(含源码)

  • 项目环境

node 10.15.3

yarn  1.15.2

win10

代码完成时间2019-4-18

  • 废话不多说,先放源码


GitHub

https://github.com/951477037/electron-print

git clone https://github.com/951477037/electron-print.git
//安装依赖
yarn
//运行项目
yarn run dev
//打包项目
yarn run build

目录结构


先在主进程 /src/main/index.js

//引入ipcMain
import {
  app,
  BrowserWindow,
  ipcMain
} from 'electron'


在createWindow方法里添加以下代码,获取打印机列表

//在主线程下,通过ipcMain对象监听渲染线程传过来的getPrinterList事件
  ipcMain.on('getPrinterList', (event) => {
    //在主线程中获取打印机列表
    const list = mainWindow.webContents.getPrinters();
    //通过webContents发送事件到渲染线程,同时将打印机列表也传过去
    mainWindow.webContents.send('getPrinterList', list);
  });


接下来在LandingPage.vue中也就是渲染进程中添加一下代码

const ipcRenderer = require("electron").ipcRenderer;
//使用ipcRenderer与主进程通信,并获取返回值
ipcRenderer.send("getPrinterList");
//监听主线程获取到打印机列表后的回调
ipcRenderer.once("getPrinterList", (event, data) => {
//data就是打印机列表
console.log(data);
});

输出结果如下


重点来了!!!

在static中新建一个print.html文件(如果你害怕打包后会找不到的话,我在最后会提供一个方法不知道你看得仔不仔细),如下图所示

如果不在static中新建的话会报错(具体原因我明没有深入去研究)




    
    
    
    
    document
    
        @page {
            margin: 0;
        }
        .a {
            padding-left: 100px;
        }
    


    
        {{v}}
    


创建完成,回到LandingPage.vue中添加以下代码

注意两个参数

silent  是否静默打印
deviceName  打印机名字

把deviceName换成你自己的打印机名字




运行代码


打包的方法!!!

打包前在package.json中修改

"win": {
      "icon": "build/icons/icon.ico",
      "extraResources": "./static/*.html"
    },

打包后,electron-printbuildwin-ia32-unpackedresources中就会存在static

static中

如果觉得有用请点个赞,转发请注明来源,谢谢


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/240286.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号