关于软件的安装、注册包括购买,可以查看官网,由于网上这方面教程不多,在我上次实现后,特意找时间记录下来,方便以后使用,本篇文章是参考 Bartender Http方式调用打印之后的补充,关于安装下载的内容也可以参考这篇文章。
模板配置
1. 这里打开BarTender软件,新建一个空白文档(这里的参数根据打印机和纸张配置,如果不知道可以先随便配置,后面再改)。
2. 创建文本,这里先随便创建一个。
3. 切换数据输入表单,在上方工具栏选择“查看”->“数据输入表单”
4. 添加“具名数据源”
在左侧“具名数据源”点击右键“创建具名数据源”,类型选择“嵌入的数据”
5. 添加控件
这里先选择一个文本输入框
6. 配置模板对象数据源
双击刚刚添加的文本输入框,在“链接数据源”中选择第四步创建的具名数据源在具名数据源下面还有一个模板对象数据源,这里就是刚刚第二步创建的文本框,点击选择。
至此一个简单的动态数据配置就已经完成了,总结一下思路:
在第二步创建了文本框,这个是和打印显示效果样式有关的,我们可以在工具栏“查看”->“模板设计”中切换回去。
第二至第五步是创建一个可用于输入的“文本框”,这里的所有操作都不会直接显示在打印效果中,可以把这一步理解成收集数据。
第六步就是把收集的数据和打印效果连接起来。
检验配置是否正确
可以使用打印预览功能测试配置有没有问题,
在输入框输入123456后,预览显示的和输入框一样说明配置没有问题。
调用接口
文档地址:http://localhost/Bartender/swagger/index.html
接口调用
地址:{host}/Bartender/api/v1/print
参数说明
| 名称 | 类型 | 注释 |
|---|---|---|
| libraryID | string | 模板库ID |
| relativePath | string | 模板相对路径 |
| AbsolutePath | string | 模板绝对路径 |
| Printer | string | 打印机名称 |
| DataEntryControls | Object | 打印模板配置参数 |
DataEntryControls 里面的值取决于模板配置的具名数据源,下面是根据上方配置的例子
const config = {
"libraryID": "bdca1bf2-59f1-42b5-8818-ded167f4ca6c",
"relativePath": "Automotive/AIAG/B-10/TLC39 MicroPDF Laser_53_rf1.btw",
"AbsolutePath": "C:\inetpub\wwwroot\BarTender\wwwroot\Templates\Automotive\AIAG\B-10\TLC39 MicroPDF Laser_53_rf1.btw",
"Printer": "ZDesigner ZD421CN-300dpi ZPL",
}
const DataEntryControls = {
test1:'hello'
}
request({method: "post", url:"http://localhost/Bartender/api/v1/print", data: {...config, DataEntryControls}}).catch(err => {
if(!err?.response?.data) throw new Error("打印服务返回错误!")
const {printRequestID} = err.response.data
request({method: "post", url:"http://localhost/Bartender/api/v1/print", data: {...config, DataEntryControls, printRequestID}}).then(res => {
console.log({msg: "打印成功", data: res.data})
}).catch(err => {
console.log({msg: "打印失败", data: err.response.data})
})
})
DataEntryControls中的test1就是配置具名数据源的名称。
重复的请求
在上面的例子中,我调用了两次request方法,在request中又调用了一次,这是因为BarTender的接口要求,在第一次调用的时候,BarTender会返回错误,并返回printRequestID,我们需要在第二次请求的时候把这个参数加上,这样打印才会生效。