在第三方网站、内网信息系统嵌入"打印精灵"标签编辑器


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

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

体验

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

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

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

cd  PATH/to/下载文件保存目录
.\third_site.exe -p 8000 -ip SpiritCenter安装IP地址, 

  • -p 参数指定web端口,缺省为8000
  • -ip 指定SpiritCenter安装IP地址, 如果不指定, 表示使用打印精灵官网作为编辑服务器

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

原理

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

第三方网站可以通过 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

go 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:

cd third_site\go
go build 
.\third_site.exe -p 8000 -ip ip_of_spiritcenter

PHP:

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

cd third_site\php
php -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 密码

返回:

{ 
  "rc":"OK",
  "token":"5c6L3nGjDJlaGVSi_PJwVZR8..............",
  "expirt":3600
}

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指定的标签为模板创建新标签 如果无该参数, 创建空标签
{
    "rc":"OK"
	"id": 3120f21d-e33c-41ed-8f99-3e259a12f6cd 
}

成功时返回标签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 子分类 设备用标签

返回:

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

get-label-content

获取标签的内容。

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

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

返回:

{
	"rc":"OK",
	"tpinfo":{
		"id":"0a12953e-1379-4105-ac8a-e4cbde51c0fc",
		"name":"第三方接口测试",
		"memo":"第三方接口测试-模板1-另存",
		"dpi":203,
		"width":1200,
		"height":800,
		"subclass":"2",
		"create_time":"2021-02-14T13:47:58Z",
		"modify_time":"2021-02-14T13:48:50Z"
	},
	"data":[
		{...},
		{...}
	],
	
}

third-edit

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

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

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

留言

登录