PrintSpirit HTTP RSET API 文档
使用前请先下载安装SpiritCenter 服务端程序
使用场景
REST API 为打印精灵二次开发模式之一, 适用于需要集中管理标签打印任务的场景。安装 SpiritCenter 的服务器可连接多台打印机(包括斑马等专用条码打印机或普通的Windows打印机),局域网内其他设备可通过 REST API 提交标签打印请求,实现远程打印控制。
REST API 本身不提供标签编辑功能, 标签编辑请参看嵌入"打印精灵"标签编辑器
基础信息
- 协议:HTTP
- 默认端口:9011如果被占用将使用19011, https为9443如果被占用将使用19443
- 请求格式:JSON (UTF-8)
- 响应格式:JSON (UTF-8)
通用响应结构
1{
2 "rc": "OK/ERR",
3 "cnt": 1, // 仅打印接口返回
4 "msg": "附加信息"
5}
API 端点明细
1. 打印标签
- URL:
/print
- Method: POST
- 请求头:
Content-Type: application/json
请求体结构
1{
2 "cmd": "PrintLabel",
3 "data": {
4 "tpid": "标签模板ID",
5 "vars": [
6 { /* 可变数据对象 */ }
7 ]
8 },
9 "opts": {
10 "printer": "打印机名称",
11 "type": "ZPL/CPCL/TSPL/ESCPOS",
12 "row": 1, // 打印行数
13 "col": 1, // 打印列数
14 "size": 50, // 或 [100,200]
15 "gapX": 2, // 横向间距
16 "gapY": 3, // 纵向间距
17 "quality": 0, // 0-Fast,1-Middle,2-Hight
18 "flush": true // 是否立即打印
19 }
20}
示例请求
1curl -X POST http://192.168.1.100:9011/print \
2-H "Content-Type: application/json" \
3-d '{
4 "cmd": "PrintLabel",
5 "data": {
6 "tpid": "product_label",
7 "vars": [{"sku": "A001", "qty": 100}]
8 },
9 "opts": {
10 "printer": "Zebra_01",
11 "type": "ZPL",
12 "row": 2,
13 "col": 1,
14 "quality": 2
15 }
16}'
2. 重置打印机
- URL:
/reset-printer
- Method: POST
- 请求头:
Content-Type: application/json
请求体结构
1{
2 "printer": "打印机名称"
3}
示例请求
1curl -X POST http://192.168.1.100:9011/reset-printer \
2-H "Content-Type: application/json" \
3-d '{"printer": "Zebra_01"}'
3. 清理缓存
- URL:
/clear-cache
- Method: GET
- 响应:204 No Content(成功时)
示例请求
1curl -X GET http://192.168.1.100:9011/clear-cache
4. 注册虚拟打印机
- URL:
/register-printer
- Method: POST
- 请求头:
Content-Type: application/json
请求体结构
1{
2 "printer": "虚拟打印机名称",
3 "type": "ZPL/CPCL/TSPL/ESCPOS",
4 "row": 1,
5 "col": 1,
6 // ...其他打印参数同打印接口
7}
成功响应
1{
2 "rc": "OK",
3 "token": "d3b07384d113e0ec49eaa6238ad5ff00"
4}
5. 获取渲染数据(虚拟打印机)
需通过其他方式获取虚拟打印机队列数据,返回数据格式为:
BASE64(ZLIB压缩(原始打印指令))
解码示例
原始数据:eJxLTE4sSc0vyklRBAAAMgMK
解码后:^XA^FO50,50^A0N,50^FDHELLO WORLD^FS^XZ
错误处理
HTTP 状态码
状态码 | 说明 |
---|---|
200 | 常规成功响应 |
204 | 清理缓存成功 |
400 | 请求参数错误 |
500 | 服务端内部错误 |
错误响应示例
1{
2 "rc": "ERR",
3 "msg": "Printer offline"
4}
协议详解
打印参数 (opts
)
参数 | 类型 | 说明 |
---|---|---|
printer | string | 必填,打印机名称 |
type | enum | 打印机语言类型 |
row/col | int | 打印标签的行列数 |
size | int/array | 标签尺寸(单位:毫米) |
gapX/gapY | int | 标签间距(单位:毫米) |
quality | 0/1/2 | 打印质量等级 |
flush | bool | 是否立即提交到打印机 |