什么是模板ID?如何获取。
模板ID是在本平台编辑模板后生成的唯一标识,通过模板ID可以访问,编辑制定的模板。
在共享模板或用户中心我的模板中,可以查看模板的ID。

什么是模板变量?规则是什么?
模板变量名支持中文吗?
支持。
如何实现可变数据打印 {#TP-VAR-PRINT}?
打印精灵支持强大的可变数据打印功能. 设计模板时, 可以指定占位符(称为:模板变量), 打印时模板变量将自动替换为实际值, 同一个标签模板可以打印不同的内容, 实现可变数据打印.
无论是使用SpiritLabel, 还是API方式打印标签, 使用模板的设计方式均相同.
例子 如果一个TEXT字段, 内容为: [姓名
name, 地址:addr], 用了两个变量name, addr以JS API方式为例, 打印时,PrintLabel的第二个参数为变量列表,会自动替换对应的模板变量,
PrintLabel(labelID, {name:"张三", addr:"四川成都"});那么实际打印内容将是: [姓名:张山 地址:四川成都]
模板变量也可以是结构化的数据,如:receiver.name、receiver.addr等等,receiver包含了多个字段。
PrintLabel(labelID, {
receiver: { name:"张三", addr:"四川成都"}
});
支持可变数据的元素包括: 文字,多行文字,一维条码,二维条码, 每个元素可以包含任意数量的变量. 创建模板时, 操作步骤如下.
- 选中元素 (文字,多行文字,一维条码,二维条码)
- 双击元素或在工具栏点击
打开文字编辑对话框.
- 在文字编辑框里, 可以输入文字和模板变量(数量任意). 模板变量包括预定义变量, 自增序列, 自定义变量三类.
- 预定义变量, 打印精灵内置的常用变量,如日期, 时间等.
- 自增序列, 该值在每次打印一张标签后自动增加.可以指定前导符,位数,增量(步长)
- 自定义变量, 每个自定义变量名称可以是字母数字,也可以是中文; 自定义变量的示例值仅在模板编辑时显示, 打印会自动替换为变量的实际值.
打印精灵支持哪些种类的条码?
支持:Code128, GS1-128,39码,25码,Codebar, EAN-13, EAN-8, UPC-A, UPC-E, 等主流一维条码,以及QRcode, PDF417, DataMatrix, GS-DataMatrix等二位条码。
如何利用自增变量打印类似: 批次号 + 流水号 + 零件号的条码. 其中批次号为6位日期 + 2位流水号, 流水号每个打印一张变动, 零件号固定, 但是需要18为后补0.
打印精灵提供灵活的工具可以实现上述目标, 有个若干种实现方式, 最灵活且方便的是利用利用打印精灵内置的JS脚本, 如下:
let batch = formatDate(null, 'YYMMDD') + padStart(get('批次序号', 0),2)
let serial = getSerial('序号', '00001')
let partNo = padEnd(get('零件号', 'ABC'), 18, 0)
return `${batch}${serial}${partNo}`
二维码支持中文吗?
支持。打印精灵的QRcode, DataMatrix二维码均支持中文。编码时,会自动根据是否有中文,选择最高效的编码模式。
如何打印带图标的QRcode二维码?
在标签设计器中, 选择需要添加图标的二维码, 点击工具栏的添加图标或添加图片按钮, 俺提示操作, 即可在中心二维码的中心田间图表.
如何打印GS1条码?如何处理DataMatrix, 128码的FNC1控制符?
打印精灵提供了非常智能的GS1条码处理功能, 对于Datamatrix二维码, 128条码, 只需选择正确的码型(GS1-128, GS1-DataMatrix), 无需显式输入控制符号, 只需按录入条码内容如:(02)00614141000418(15)240901(10)4512XA(37)20,打印精灵可以自动插入FNC1控制符(GS1标识),自动处理应用标识AI, 自动处理固定长度及变长字段, 在变长字段自动添加分割符, 满足国际贸易, 物流, 医疗器械等领域条码合规要求。
同时, 为了进一步的处理各种复杂的条码, 打印精灵提供了GS1条码操作的JS脚本库, 可以更精确的控制条码内容, 详见:打印精灵GS1 JavaScript 库使用手册
如何打印图标/图像?
支持。打印精灵支持两种方式的图像。自定义图片和ICON。 自定义图片在编辑其中上传支持任意图像格式。ICON为SVG格式,支持无级缩放。
如何将标签批量导出为矢量PDF文件, XPS文件, 图片ZIP包
三种导出模式的操作基本相同, 步骤如下:
1. 选择正确的打印机,
| 打印机 | 输出 |
|---|---|
| Microsoft Print to PDF | 输出PDF文件 |
| Microsoft XPS Document Writer | 输出XPS文件 |
| Spirit Image - ZIP Archived | 输出图片压缩包ZIP |
和一般打印程序相同,请用 Open() 获取打虚拟印机操作对象,以便进行后面的操作。
2. 执行打印
使用 PrintLabel(label_id, vars) 打印, vars可以是数组一次处理多个标签. 也可以是普通数据, 一次处理一个标签, 建议使用后一种模式, 方便显示进度条.
不管用那种模式, 最后都只会生成一个PDF/XPS/ZIP文件, 并可通过第三步获取
3. 获取打印结果
务必使用 closeWait()函数关闭打印机. 与一般的close()函数不同, closeWait()可以获取打印机结果url, 通过该URL下载生成的PDF/XPS或ZIP文件. 这是和标准打印最大不同的地方.
完整的示例程序如下:
1 var prn;
2 var download_url;
3
4 // Open A PDF virtural Printer
5 try {
6 prn = await SPIRIT.open({type:"WIN", name:"Microsoft Print to PDF"})
7 }catch(e) {
8 alert(e)
9 return;
10 }
11
12 // 循环打印
13 for (vars of label_data) {
14 try {
15 await prn.PrintLabel("953745b5-90f3-4852-805d-d11f994d2374", vars);
16 //更新进度条
17 }catch(e){
18 alert(e)
19 prn.close()
20 return;
21 }
22 }
23
24 // 关闭打印机并获取PDF url
25 try {
26 let rc = await prn.closeWait();
27 if (rc.rc==="DATA") {
28 download_url = rc.data
29 }
30 }catch(e){
31 alert(e)
32 return;
33 }
34
35 // download 生成的PDF文件。
36 // 比如: windows.location.href=download_url
37 ...
能用企业私有字体设计打印标签吗?
能。 请参看:如何在打印精灵中使用自定义字体,打印精美标签