PrintSpirit HTTP RSET API 文档

使用前请先下载安装SpiritCenter 服务端程序

使用场景

REST API 为打印精灵二次开发模式之一, 适用于需要集中管理标签打印任务的场景。安装 SpiritCenter 的服务器可连接多台打印机(包括斑马等专用条码打印机或普通的Windows打印机),局域网内其他设备可通过 REST API 提交标签打印请求,实现远程打印控制。

PC机 打印客户端 移动设备 打印客户端 /print REST API SpiritCenter 服务器 USB/Network 打印指令 打印机1 ZPL 打印机2 TSPL

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 是否立即提交到打印机

下一篇:REST API Java SDK


留言

登录