一、开放源码项目简介
用于小表格打印,目前适用于Windows(Windows 7、Windows 10)。
是使用php laravel搭建的一个小票打印的Api服务,使用php的mike42/escpos-php库。
内容已包含一个独立解压版的,不需另行安装php环境。
二、功能概述
laravel搭建的一个小票打印的Api服务,支持Win10/Win7 集成php独立环境 Window ticket printer。
小票打印 添加了html和html模板打印,支持二维码和条形码。
三、技术选型
PHP、Laravel
四、使用方法及界面展示
使用方法
安装服务
- 下载源码的zip包
- 解压源码包(注意:不要解压到中文路径)
- 运行 quick-(打开配置页) 或 printer-(不打开配置页)
配置页(或使用下面的接口调用进行配置)
- 安装后,会自动启动服务,并打开打印配置页面
- 打印配置页URL : http://localhost:8077/printer-setting
- 配置页:
- 打印效果:
- 配置页说明
在操作之前,请先在安装好小票打印机及驱动。 1.添加打印机:选择安装的小票打印机,点击“+”号 如果列表内为空,则新添加的打印机会成为默认打印机。 注意:“虚拟打印机”是无法添加的 2.点击打印测试页,会跳转到预览页,点击右侧,打印按钮。
从接口进行配置
- 获取所有打印机
GET http://localhost:8077/api/printer/get-local-printers
- 获取现有打印机配置
GET http://localhost:8077/api/printer/get-config
- 配置添加的小票打印机
POST http://localhost:8077/api/printer/set-printer-config 参数:JSON {"printer_name":"POS-58","is_default":true}
- 设置默认打印机
POST http://localhost:8077/api/printer/set-defult-printer 参数:JSON {"printer_name":"POS-58"}
使用图片打印
- 因为各种小票打印机支持的功能差异太大,所以就只实现图片打印,市场上80%的小票打印机都支持图片。
- 测试页就是使用html转canvas图片进行打印的
POST http://localhost:8077/api/job/print-image-data-url 参数:JSON printer_name: 可以不传或为空,则使用默认打印机 {"printer_name":"POS-58","image_data":"data:image/png;base64,..."}
二维码和条形码支持
在使用HTML或HTML模板打印时可使用class qrcode和barcode 对二维码条形码进行标记 二维码和条形码的更多参数配置,可以通过节点data属性进行传递
示例: 二维码: 内容: 二维码的更多属性参考: <div class="qrcode center" data-widht=128 data-height=128 data-color-light="#ffffff" data-color-dark="#000000" data-text=""> 条形码: 内容: nop-printer 二维码的更多属性参考: <div class="barcode" data-format="pharmacode" data-display-value=false data-width=4 data-height=60 data-text="nop-printer">
使用HTML打印
请求:POST-JSON: {"html":"<p>HELLO NOP</p>","printer_name":null} 响应: { "code": 0, "msg": "操作成功", "data": { "task_id": 14 } }
使用HTML模板打印
请求:POST-JSON: {"printer_name":null,"tpl_name":"simple-tpl","tpl_params":{"user":"NOP"}} 响应: { "code": 0, "msg": "操作成功", "data": { "task_id": 14 } }
HTML打印模板管理
- 模板采用lodash template 模板语法
保存模板(模板名不存在则创建)
请求:POST-JSON: {"attrs":{"tpl_name":"simple-tpl","tpl_content":"<p>HELLO <%=user%></p>","params_examples":"{\"user\":\"WORLD\"}"}} 响应: { "code": 0, "msg": "操作成功", "data": { "tpl_name": "simple-tpl", "tpl_content": "<p>HELLO <%=user%></p>", "params_examples": "{\"user\":\"WORLD\"}", "updated_at": "2021-02-19T16:49:38.000000Z", "created_at": "2021-02-19T16:49:38.000000Z", "id": 2 } }
查询模板
请求:POST-JSON: {"tpl_name":"simple-tpl"} 响应: "data": { "tpl_name": "simple-tpl", "tpl_content": "<p>HELLO <%=user%></p>", "params_examples": "{\"user\":\"WORLD\"}", "updated_at": "2021-02-19T16:49:38.000000Z", "created_at": "2021-02-19T16:49:38.000000Z", "id": 2 } }
删除模板
请求:POST-JSON: {"tpl_name":"simple-tpl"} 响应: { "code": 0, "msg": "操作成功", "data": null }
启动服务
运行:printer-
停止服务
运行:printer-stop.bat
注册系统服务启动项
运行:system-service register
注销系统服务启动项
运行:system-service unregister
五、开源协议
使用MIT开源协议
六、源码地址
私信回复:小票打印
1.《怎么打印到虚拟打印机?终于找到答案了「开源」支持HTML模板、图片、二维码和条形码打印的小票打印程序》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《怎么打印到虚拟打印机?终于找到答案了「开源」支持HTML模板、图片、二维码和条形码打印的小票打印程序》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/why/3105820.html