依星源码资源网,依星资源网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

【好消息,好消息,好消息】VIP会员可以发表文章赚积分啦 !
查看: 125|回复: 0

一个全能的electron打印插件electron-pos-printer

[复制链接] 主动推送

2076

主题

2083

帖子

3214

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3214
发表于 2024-10-19 17:59:15 | 显示全部楼层 |阅读模式
一个全能的electron打印插件electron-pos-printer
可以一键打印图片、文本、二维码、条形码、表格
不用安装其他多余插件,亲测十分好用
electron-pos-printer
1、安装
  1. npm install electron-pos-printer
  2. yarn add electron-pos-printer
复制代码
2、使用
在main主进程中引入
  1. const {PosPrinter} = require("electron-pos-printer");
复制代码
在render渲染进程中引入
  1. const {PosPrinter} = require('electron').remote.require("electron-pos-printer");
复制代码
定义参数
  1. const printOptions = {
  2.    preview: false,               // 打印预览
  3.    width: '80px',               //  宽度
  4.    margin: '0 0 0 0',            // 外边距
  5.    copies: 1,                    // 打印页数
  6.    printerName: '',        // 打印机名称
  7.    timeOutPerLine: 400,    //超时时间
  8.    pageSize: { height: 301000, width: 71000 }  // 页面大小
  9. }
复制代码
注意:
页面大小需要根据你的纸张大小自己调试
打印机名称通过remote.getCurrentWebContents().getPrinters()获取
开始打印二维码
  1. /**
  2.      * 去打印
  3.      * value:二维码数据
  4.      * textLeft:文本左边距距离
  5.      */
  6.     _toPrint(value, textLeft) {
  7.       const printerName = new Store().get('printerName')
  8.       if (!printerName) {
  9.         //请先选择打印机
  10.         this.showSelPrintModal = true
  11.         return
  12.       }
  13.       const data = [
  14.         {
  15.           type: 'qrCode',
  16.           value,
  17.           height: 100,
  18.           width: 100,
  19.           displayValue: true, // Display value below barcode
  20.           style: `margin-left:80px;`,
  21.         },
  22.         {
  23.           type: 'text',
  24.           value,
  25.           style: `margin-left:${textLeft}px;`,
  26.         },
  27.       ]
  28.       printOptions = { ...printOptions, printerName }
  29.       PosPrinter.print(data, printOptions)
  30.         .then(() => {})
  31.         .catch((error) => {
  32.           console.error('打印错误', error)
  33.         })
  34.     },
复制代码
说明:先获取打印机名称,然后调用插件打印,边距需要调式这个距离
打印成果(纸张是700*500)

一个全能的electron打印插件electron-pos-printer

一个全能的electron打印插件electron-pos-printer
打印条形码也是如此(修改一下data)
  1. const data = [
  2.         {
  3.           type: 'barCode',
  4.           value,
  5.           height: 110,
  6.           width: 1,
  7.           displayValue: true, // 是否显示数值
  8.           fontsize: 16,
  9.           style: `margin-left:${left}px;`,
  10.         },
  11.       ]

复制代码
大功告成!!!
还有表格、图片我就不演示了,直接上作者demo
  1. const {PosPrinter} = require("electron-pos-printer");
  2. const path = require("path");

  3. const options = {
  4.    preview: false,               // Preview in window or print
  5.    width: '170px',               //  width of content body
  6.    margin: '0 0 0 0',            // margin of content body
  7.    copies: 1,                    // Number of copies to print
  8.    printerName: 'XP-80C',        // printerName: string, check with webContent.getPrinters()
  9.    timeOutPerLine: 400,
  10.    pageSize: { height: 301000, width: 71000 }  // page size
  11. }

  12. const data = [
  13.    {
  14.      type: 'image',                                       
  15.      path: path.join(__dirname, 'assets/banner.png'),     // file path
  16.      position: 'center',                                  // position of image: 'left' | 'center' | 'right'
  17.      width: '60px',                                           // width of image in px; default: auto
  18.      height: '60px',                                          // width of image in px; default: 50 or '50px'
  19.    },{
  20.       type: 'text',                                       // 'text' | 'barCode' | 'qrCode' | 'image' | 'table
  21.       value: 'SAMPLE HEADING',
  22.       style: `text-align:center;`,
  23.       css: {"font-weight": "700", "font-size": "18px"}
  24.    },{
  25.       type: 'text',                       // 'text' | 'barCode' | 'qrCode' | 'image' | 'table'
  26.       value: 'Secondary text',
  27.       style: `text-align:left;color: red;`,
  28.       css: {"text-decoration": "underline", "font-size": "10px"}
  29.    },{
  30.       type: 'barCode',
  31.       value: 'HB4587896',
  32.       height: 12,                     // height of barcode, applicable only to bar and QR codes
  33.       width: 1,                       // width of barcode, applicable only to bar and QR codes
  34.       displayValue: true,             // Display value below barcode
  35.       fontsize: 8,
  36.    },{
  37.      type: 'qrCode',
  38.       value: 'https://github.com/Hubertformin/electron-pos-printer',
  39.       height: 55,
  40.       width: 55,
  41.       style: 'margin: 10 20px 20 20px'
  42.     },{
  43.        type: 'table',
  44.        // style the table
  45.        style: 'border: 1px solid #ddd',
  46.        // list of the columns to be rendered in the table header
  47.        tableHeader: ['Animal', 'Age'],
  48.        // multi dimensional array depicting the rows and columns of the table body
  49.        tableBody: [
  50.            ['Cat', 2],
  51.            ['Dog', 4],
  52.            ['Horse', 12],
  53.            ['Pig', 4],
  54.        ],
  55.        // list of columns to be rendered in the table footer
  56.        tableFooter: ['Animal', 'Age'],
  57.        // custom style for the table header
  58.        tableHeaderStyle: 'background-color: #000; color: white;',
  59.        // custom style for the table body
  60.        tableBodyStyle: 'border: 0.5px solid #ddd',
  61.        // custom style for the table footer
  62.        tableFooterStyle: 'background-color: #000; color: white;',
  63.     },{
  64.        type: 'table',
  65.        style: 'border: 1px solid #ddd',             // style the table
  66.        // list of the columns to be rendered in the table header
  67.        tableHeader: [{type: 'text', value: 'Animal'}, {type: 'image', path: path.join(__dirname, 'icons/animal.png')}],
  68.        // multi dimensional array depicting the rows and columns of the table body
  69.        tableBody: [
  70.            [{type: 'text', value: 'Cat'}, {type: 'image', path: './animals/cat.jpg'}],
  71.            [{type: 'text', value: 'Dog'}, {type: 'image', path: './animals/dog.jpg'}],
  72.            [{type: 'text', value: 'Horse'}, {type: 'image', path: './animals/horse.jpg'}],
  73.            [{type: 'text', value: 'Pig'}, {type: 'image', path: './animals/pig.jpg'}],
  74.        ],
  75.        // list of columns to be rendered in the table footer
  76.        tableFooter: [{type: 'text', value: 'Animal'}, 'Image'],
  77.        // custom style for the table header
  78.        tableHeaderStyle: 'background-color: #000; color: white;',
  79.        // custom style for the table body
  80.        tableBodyStyle: 'border: 0.5px solid #ddd',
  81.        // custom style for the table footer
  82.        tableFooterStyle: 'background-color: #000; color: white;',
  83.     },
  84. ]

  85. PosPrinter.print(data, options)
  86. .then(() => {})
  87. .catch((error) => {
  88.     console.error(error);
  89.   });

复制代码
很好用的一个打印工具插件!!!


游客,本帖隐藏的内容需要积分高于 2 才可浏览,您当前积分为 0
提取码下载:
文件名称:提取码下载.txt 
下载次数:0  文件大小:16 Bytes  售价:5金钱 [记录]
下载权限: 不限 [购买VIP]   [充值]   [在线充值]   【VIP会员5折;永久VIP免费】
安全检测,请放心下载



相关帖子

扫码关注微信公众号,及时获取最新资源信息!下载附件优惠VIP会员5折;永久VIP免费
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

免责声明:
1、本站提供的所有资源仅供参考学习使用,版权归原著所有,禁止下载本站资源参与商业和非法行为,请在24小时之内自行删除!
2、本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,请勿任何商业目的与商业用途。
3、若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
4、论坛的所有内容都不保证其准确性,完整性,有效性,由于源码具有复制性,一经售出,概不退换。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
5、用户使用本网站必须遵守适用的法律法规,对于用户违法使用本站非法运营而引起的一切责任,由用户自行承担
6、本站所有资源来自互联网转载,版权归原著所有,用户访问和使用本站的条件是必须接受本站“免责声明”,如果不遵守,请勿访问或使用本网站
7、本站使用者因为违反本声明的规定而触犯中华人民共和国法律的,一切后果自己负责,本站不承担任何责任。
8、凡以任何方式登陆本网站或直接、间接使用本网站资料者,视为自愿接受本网站声明的约束。
9、本站以《2013 中华人民共和国计算机软件保护条例》第二章 “软件著作权” 第十七条为原则:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。若有学员需要商用本站资源,请务必联系版权方购买正版授权!
10、本网站如无意中侵犯了某个企业或个人的知识产权,请来信【站长信箱312337667@qq.com】告之,本站将立即删除。
郑重声明:
本站所有资源仅供用户本地电脑学习源代码的内含设计思想和原理,禁止任何其他用途!
本站所有资源、教程来自互联网转载,仅供学习交流,不得商业运营资源,不确保资源完整性,图片和资源仅供参考,不提供任何技术服务。
本站资源仅供本地编辑研究学习参考,禁止未经资源商正版授权参与任何商业行为,违法行为!如需商业请购买各资源商正版授权
本站仅收集资源,提供用户自学研究使用,本站不存在私自接受协助用户架设游戏或资源,非法运营资源行为。
 
在线客服
点击这里给我发消息 点击这里给我发消息 点击这里给我发消息
售前咨询热线
312337667

微信扫一扫,私享最新原创实用干货

QQ|免责声明|小黑屋|依星资源网 ( 鲁ICP备2021043233号-3 )|网站地图

GMT+8, 2024-11-24 00:16

Powered by Net188.com X3.4

邮箱:312337667@qq.com 客服QQ:312337667(工作时间:9:00~21:00)

快速回复 返回顶部 返回列表