在第三方网站、内网信息系统集成标签编辑器


“打印精灵”提供了一组API, 可以将标签设计器(SpiritDesigner)集成到第三方网站或内网信息系统中,以极低的成本为第三方提供完善的标签编辑、打印功能, 请参考打印精灵开放平台

桌面应用集成编辑器,请使用动态连接库 API

使用条件:: 集成”打印精灵"标签编辑器,需要一个企业账号(互联网模式)或安装SpiritCenter(内网模式)。两种模式开发方式完全相同,仅服务器地址有差别, 互联网模式为打印精灵官网地址: https://www.printspirit.cn, 内网模式为SpiritCenter安装IP地址( http://安装IP:9011 或 https://安装IP:9443)

体验

体验第三方网站集成效果,请下载第三方网站模拟程序。该程序在本机建立一个模拟网站, 通过打印精灵的第三方开发API, 实现标签的编辑、打印等功能。 同时,该程序提供了源码, 包括GO, PHP语言的范例程序, 供集成打印精灵时参考。 详见模拟第三方网站程序的使用。

下载模拟程序 ,该程序为绿色软件,可以直接执行.

打开windows 的命令行(CMD, PowerShell等)。

1cd  PATH/to/下载文件保存目录
2./third_site.exe -p 8000 -ip SpiritCenter安装IP地址, 
  • -p 参数指定web端口,缺省为8000
  • -ip 指定SpiritCenter安装IP地址, 如果不指定, 表示使用打印精灵官网作为编辑服务器

然后使用http://127.0.0.1:8000访问, 将列出标签, 并可选择编辑,新增,删除标签.

原理

对于在线企业版用户(或SpiritCenter用户),“打印精灵”提供了如下几个API:

打印精灵官网 SpiritCenter 用户WEB网站 内网/外网 用户浏览器 5-third-edit 1-get-acccess-token 2-access-token 3-get-label-list 4-labels

第三方网站可以通过 get-label-list API 获取本企业的全部标签列表,调用时需要提供一个附加参数subclass,为自定的分类标识,最常见的用途是用来区分该企业下的最终用户, 方便SaaS软件的开发。有了这几个API, 第三方企业网站可以按自己的需要分类列出各种标签模板, 进一步实现选择打印模板,显示预览,编辑等。

第三方网站如果需要编辑标签, 跳转到(或内嵌到IFRAME中)https://www.printspirit.cn/third-edit?token=token&subclass=subclass&tpid=tpid, 即可打开编辑编辑。需要三个参数: subclass / tpid , 如果不设置tpid,表示新建。

第三方网站可以用new-label先创建标签,获取新建标签的ID, 然后再编辑。这样可以将标签id保存在系统中,用于后续的打印、编辑等操作.

第三方网站如果需要在自己的网站保存标签数据, 可以使用 get-label-content API 获取标签的内容。注意:多数情况下无需在本地保存标签数据。

第三方网站如果需要在自己的网站预览标签,可以使用<img src="https://www.printspirit.cn/utils/thumb?id=tp_id"/>(打印精灵官网) 或 <img src="http://IP:9011/utils/thumb?id=tp_id"/>(SpiritCenter)

注意: 互联网模式,请在“打印精灵”注册帐号后,联系客户开通API功能。测试时,可以使用third_test帐号,密码也是third_test。

开发工具

为方便嵌入程序开发, 我们提供了开发示例及SDK:

GO-SDK

1go get github.com/printspirit/gosdk

使用site = gosdk.NewThirdApp(HOST_URL, PASS, WORD)创建实例, 然后调用API

func NewThirdApp(host, uid, pass string) *ThirdApp
func (app *ThirdApp) DelLabel(id string) error
func (app *ThirdApp) GetEditUrl(subclass, tpid string) (string, error)
func (app *ThirdApp) GetList(subclass string) (*[]TpInfo, error)
func (app *ThirdApp) NewLabel(name string, width, height, dpi int, subclass, refid string) (string, error)

示例源码

clone gihub 源码,可以在本地修改、编译运行程序。

git clone https://www.github.com/printspirit/spirit_example

程序在third_site目录下,分为GO, PHP 两个版本

GO:

1cd third_site/go
2go build 
3./third_site.exe -p 8000 -ip ip_of_spiritcenter

PHP:

使用php5.4以上环境的内置web服务。

1cd third_site/php
2php -S localhost:8000 main.php

对PHP程序的说明,请查看

API 详解

get-access-token

获取访问token, 调用下面的API前需要先调用该API。获取的token可以缓存使用,有效期为1个小时。

http[s][:port]/服务器IP地址/api/get-access-token?userid=XXX&passwd=XXXX

服务器访问URL:

下同。

参数 说明 例子
userid 用户名
passwd 密码

返回:

1{ 
2  "rc":"OK",
3  "token":"5c6L3nGjDJlaGVSi_PJwVZR8..............",
4  "expirt":3600
5}

rc为OK时,返回token, 以及过期时间。

new-label

http[s][:port]/服务器IP地址/api/new-label?token=XXXXX&subclass=XXX...

参数 说明 例子
token 通过get-access-token获取
subclass 子分类
width 标签宽 单位0.1mm
height 标签高 单位0.1mm
dpi 缺省分辨率 dot/英寸 单位0.1mm
name 标签名
refid 以refid指定的标签为模板创建新标签 如果无该参数, 创建空标签
1{
2    "rc":"OK",
3    "id": "3120f21d-e33c-41ed-8f99-3e259a12f6cd"
4}

成功时返回标签id, 可以用于进行编辑等操作

del-label

删除标签

http[s][:port]/服务器IP地址/api/del-label?token=XXXXX&subclass=XXX...

参数 说明 例子
token 通过get-access-token获取
id 标签ID

get-label-list

http[s][:port]/服务器IP地址/api/get-label-list?token=XXXXX&subclass=XXX

参数 说明 例子
token 通过get-access-token获取的
subclass 子分类 设备用标签

返回:

 1{
 2    "rc":"OK",
 3    "data":[{
 4        "id": "0a12953e-1379-4105-ac8a-e4cbde51c0fc", 
 5        "name":"第三方接口测试", 
 6        "memo":"第三方接口测试-模板1-另存", 
 7        "width":1200, 
 8        "height":800, 
 9        "subclass":"2", 
10        "private":0, 
11        "create_time":"2021-02-14T13:47:58Z", 
12        "modify_time":"2021-02-14T13:48:50Z"
13    }]
14}

get-label-content

获取标签的内容。

http[s][:port]/服务器IP地址/api/get-label-content?token=XXX&tpid=TPID

参数 说明 例子
token 通过get-access-token获取的
tpid 需要获取内容的标签ID

返回:

 1{
 2    "rc":"OK",
 3    "tpinfo":{
 4        "id":"0a12953e-1379-4105-ac8a-e4cbde51c0fc",
 5        "name":"第三方接口测试",
 6        "memo":"第三方接口测试-模板1-另存",
 7        "dpi":203,
 8        "width":1200,
 9        "height":800,
10        "subclass":"2",
11        "create_time":"2021-02-14T13:47:58Z",
12        "modify_time":"2021-02-14T13:48:50Z"
13    },
14    "data":[
15        {...},
16        {...}
17    ],
18}

third-edit

将跳转到打印精灵网站或SpiritCenter服务器,开始编辑

http[s][:port]/服务器IP地址/third-edit?subclass=XXXX&tpid=XXXX&token=XXXX

参数 说明 例子
token 通过get-access-token获取的
subclass 子分类 设备用标签
tpid 模板id 如果为空,表示新建

留言

登录