目录
安装和使用
- 打印控件-SpiritWeb
- 标签设计-Designer
- 标签打印-SpiritLabel
- 商业授权
- JS脚本
常见问题
二次开发手册
- WEB插件API
- 动态连接库
- REST API
- 三方网站集成
- Andoird Native SDK
- H5 APP
打印精灵JS脚本功能操作手册
打印精灵(PrintSpirit)自设计之初,便秉持着“打印与程序逻辑分离”的核心理念,通过配套的标签编辑器和打印API,极大地简化了应用软件的打印功能开发。无需更改程序, 就可独立修改标签视觉效果.
然而,现实是复杂的, 典型的例子如金额的打印格式问题: 同一份订单,发票上金额需显示为中文大写‘壹仟伍佰捌拾元伍角’,而内部留存联则只需显示数字‘1580.50’。
要实现这一点,一个非常容易想到的方法是后端程序为同一个金额准备两个不同的字段(例如,一个金额,一个大写金额)。这虽然简单,但无疑增加了后端程序的耦合性,与我们“分离”的原则有所冲突。
为了极致的灵活性和应对未来挑战,经过深思熟虑,我们最终决定引入JavaScript脚本作为核心解决方案。
JS脚本
借助JavaScript的强大能力,您可以在标签内部执行条件判断、循环、字符串格式化、日期操作、函数调用等几乎所有JS支持的功能。唯一的要求是,脚本的最终结果必须通过return语句返回。
开篇的问题, 后端只需提供一个字段(金额), 大写金额可以简单的用toChinese(金额)轻松获取.
在新版本打印精灵的标签编辑器中,无论是单行文本、多行文本、条码还是二维码的编辑界面,都新增了一个“JS脚本”标签页,供您维护和编写JavaScript代码。脚本支持ECMAScript标准,确保了广泛的兼容性和稳定性。

基础示例:拼接字段
1return `${get('订单日期')} ${getSerial('订单编号', '000001')} ${get('订单金额', 100.00)}`
这个简单的脚本将“订单日期”和“订单金额”两个变量的值拼接在一起并返回。
变量使用提示: 在JS脚本中,您可以使用
get('变量名')/getSerial('序列名')获取API传递过来的变量, 或打印精灵自动维护的序列值。然而,在标签设计时,这些变量(或序列)可能尚未存在,因此可以通过get/getSerial第二个参数传递变量(或序列)的示例值,方便程序调试
进阶示例:使用内置库函数生成GS1条码
1let code = new GS1()
2code.add(GS1.AI.GTIN, "1234567890123")
3code.add(GS1.AI.SSCC, "123456789012345675")
4
5// 您可以根据需要添加其他条码AI字段
6
7return code.fullcode()
此例演示了如何利用内置的GS1编码库函数。它能帮助您方便地生成合规的GS-1标准条码数据,自动计算校验码并插入分隔符,极大简化了复杂的条码生成逻辑。
高级示例:数组变量与汇总计算
1let list = get('订单明细', [{name:'商品A', price:100}, {name:'商品B', price:200}])
2
3let total=0
4for (cur of list) {
5 total += cur.price
6}
7
8return total
此脚本展示了如何处理数组类型的变量,并进行汇总计算。这里计算了订单明细中所有商品的价格总和。
JS脚本库函数
为了进一步提升开发效率,打印精灵提供了脚步库函数功能, 可以将常用的程序写成函数, 方便使用, 包括标准库函数和用户库函数两类.
标准库函数
标准库函数, 无需设置开箱即可在文本、条码等所有字段的JS脚本中直接调用,包括如下几个类别.
用户库函数
自定义库函在整个标签范围内有效,通过点击
按钮管理和维护. 定义后, 使用方法和标准库一样。

实际效果:效率与灵活性的飞跃
实施这套JS脚本方案后,打印精灵在实际应用中带来了显著的提升:
对第三方应用开发团队:
- 90%的打印相关需求变更不再需要开发团队介入,由业务或运营人员自行调整。
- 减少了大量重复的数据格式化代码,使后端程序更加专注于业务逻辑。
- 系统稳定性更高,核心业务逻辑不再受前端打印格式变更的影响。
对业务部门:
- 打印格式调整的响应时间从“几天”缩短到“几分钟”,大大提高了业务敏捷性。
- 可以自主实验和迭代不同的打印样式,无需依赖开发资源。
- 针对如促销活动专用格式等特殊打印需求,能够实现快速响应和上线。