命令文件是包含打印进程指令的纯文本文件,这些指令通过 NiceLabel 命令来表示。命令从头开始每次执行一个,直到文件末尾。
支持以下命令文件类型:
注意
这些文件支持 Unicode 格式。这样便可包括多语言内容。
JOB 命令文件是包含原生 NiceLabel 打印命令的文本文件。这些命令按从上到下的顺序执行。命令的顺序通常从 LABEL(打开标签)开始。LABEL 命令后跟 SET(设置变量值),最后紧跟着 PRINT(打印标签)。
可以使用下列操作执行 JOB 命令文件:
NiceLabel 命令用于在命令文件中控制标签打印。Desktop Designer 按从上到下的顺序执行命令文件中的命令。
COMMENT
;
如果开发命令文件,最好记录您的命令。稍后检查代码时,这有助于解码脚本执行的实际操作。在行首使用分号 (;
)。分号后跟的所有内容均视为注释,不进行处理。
CLEARVARIABLEVALUES
CLEARVARIABLEVALUES
此命令将变量值重置为其默认值。
CREATEFILE
CREATEFILE <file name> [, <contents>]
此命令创建文本文件。您可以使用该命令向第三方应用程序发出信号,告知打印过程已开始或结束,具体取决于放置命令的位置。对于网络资源,请使用 UNC 语法。有关详细信息,请参阅《NiceLabel Automation 用户指南》中的“访问网络共享资源”一节。
DELETEFILE
DELETEFILE <file name>
删除指定文件。对于网络资源,请使用 UNC 语法。有关详细信息,请参阅《NiceLabel Automation 用户指南》中的“访问网络共享资源”一节。
EXPORTLABEL
EXPORTLABEL ExportFileName [, ExportVariant]
实施此命令的目的是自动执行标签设计器中提供的“导出到打印机”命令。标签直接导出到打印机并存储在内存中供脱机打印。用户可以使用打印机上的键盘或者通过向打印机发送命令文件来调用标签。相同的功能也适用于存储标签到打印机操作。
注意
要指定用于导出的标签,请先使用 LABEL 命令。
-
ExportFileName.此参数是必需的,用于定义所生成打印机命令的文件名。
-
ExportVariant。某些打印机支持多个导出变量。如果手动导出这些变量,用户可以在对话框中选择导出变量。对于 EXPORTLABEL 命令,必须指定要使用的导出变量。启用存储/调用打印模式后,这些变量在标签设计器中可见。
列表中第一个变量的值为 0。第二个变量的值为 1,依此类推。
如果未指定任何变量类型,则使用 0 作为默认值。
有关脱机打印的详细信息,请参阅主题使用存储/调用打印模式。
IGNOREERROR
IGNOREERROR <on> [,<off>]
指定下列 JOB 文件错误不终止打印过程:
-
使用的变量名称不正确。
-
发送到变量的值不正确。
-
标签不存在/无法访问。
-
打印机不存在/无法访问。
LABEL
LABEL <label name> [,<printer_name>]
此命令打开要打印的标签。如果该标签已加载,则不会重新打开。您可以包括路径名。如果标签名称或路径包含空格,则将该名称放在双引号内。对于网络资源,请使用 UNC 语法。有关详细信息,请参阅《NiceLabel Automation 用户指南》中的主题“访问网络共享资源”。
可选参数 printer_name
指定将为其打开标签的打印机。如果要覆盖保存在标签模板中的打印机名称,请使用此设置。如果所提供打印机名称对应的驱动程序未安装或不可用,该命令会导致错误。
MESSAGEBOX
MESSAGEBOX <message> [,<caption>]
将自定义 message
记录到触发器日志中。如果消息包含空格字符或逗号,则必须将文本放在双引号 ("
) 内。
PORT
PORT <file name> [, APPEND]
此命令覆盖打印机驱动程序中定义的端口并重定向打印到文件。如果文件路径或文件名包含空格,则将值放在双引号 ("
) 内。对于网络资源,请使用 UNC 语法。有关详细信息,请参阅《NiceLabel Automation 用户指南》中的主题“访问网络共享资源”。
参数 APPEND
是可选的。默认情况下,文件将被覆盖。使用此参数可将数据附加到现有文件。
如果在 JOB 文件中使用 PORT 命令,则该命令将保持有效,直到下一个 PORT 命令或文件末尾(以首先满足的条件为准)。如果在执行 PORT 命令后使用 PRINTER 命令,PORT 设置将覆盖为所选打印机定义的端口。如果要使用为所选打印机定义的实际端口,则必须使用另一个具有空值的 PORT 命令,例如 PORT = ""
。
PRINT <quantity> [,<skip> [,<identical label copies> [,number of label sets]]]
此命令启动打印过程。
-
Quantity。指定要打印的标签数量。
-
<number>.将打印指定的标签数量。
-
VARIABLE。指定某个标签变量定义为变量数量并将包含要打印的标签数量。label 将确定要打印的标签数量。
-
UNLIMITED.如果使用数据库获取对象的值,则无限打印将打印的标签数量与数据库中的记录相同。如果不使用数据库,则将打印热敏打印机内部支持的最大标签数。
-
-
Skip。指定要在第一页跳过的标签数量。该参数用于在张纸上打印标签。如果该页已部分使用,则可通过改变第一个标签的起始位置来重复使用同一页。
-
Identical label copies。指定同一标签必须打印的副本数。
-
标签组数量.指定整个打印进程本身应重复的次数。
注意
请确保提供的数量值是数字值,而非字符串值。不要将该值放在双引号内。
PRINTER
PRINTER <printer name>
此命令覆盖标签文件中定义的打印机。如果打印机名称包含空格字符,则将其放在双引号 ("
) 内。
使用标签设计应用程序的状态行中显示的打印机名称。打印机名称通常与“控制面板”中的“打印机和传真”中的打印机名称相同,但并非始终如此。如果使用网络打印机,可能会通过 \\server\share
语法显示该名称。
PRINTJOBNAME
PRINTJOBNAME
此命令指定要显示在 Windows 后台处理程序中的打印机作业名称。如果名称包含空格字符或逗号,则必须将值放在双引号 ("
) 内。
SESSIONEND
SESSIONEND
此命令关闭打印流。另请参阅 SESSIONSTART。
注意
在“发送自定义命令”操作中,SESSIONEND
必须作为唯一的项进行发送。如果希望发送其他命令,请使用不同的“发送自定义命令”操作。
SESSIONPRINT
SESSIONPRINT <quantity> [,<skip>]
此命令打印当前引用的标签并将其添加到当前打开的会话打印流。您可以先后使用多个 SESSIONPRINT 命令并将引用的标签合并为单一打印流。除非使用 SESSIONEND 关闭该打印流,否则它不会关闭。quantity 和 skip 参数的含义与 NiceLabel 命令 PRINT 相同。另请参阅 SESSIONSTART。
-
Quantity。指定要打印的标签数量。
-
Skip。指定要在第一页跳过的标签数量。该参数用于在张纸上打印标签。如果该页已部分使用,则可通过改变第一个标签的起始位置来重复使用同一页。
SESSIONSTART
SESSIONSTART
此命令启动会话打印类型的打印。
与会话打印相关的三个命令(SESSIONSTART、SESSIONPRINT、SESSIONEND)一起使用。使用 PRINT 命令时,每个标签数据都将以单独的打印作业发送到打印机。如果要将多个标签的标签数据合并为打印流,则应使用会话打印命令。必须从 SESSIONSTART 命令开始,后跟任意数量的 SESSIONPRINT 命令,最后紧跟着 SESSIONEND 命令。
使用这些命令可优化标签打印过程。与打印一系列打印作业中的标签相比,打印来自一个打印作业的标签要快得多。
您必须遵循一些规则,这样会话打印才不会中断。
-
不能在会话中更改标签。
-
不能在会话中更改打印机
-
必须在会话中为所有标签变量设置值,即使某些变量的值将为空也如此
SET
SET <name>=<value> [,<step> [,<number or repetitions>]]
此命令将 value
分配给 name
变量。必须在标签上定义该变量,否则会发生错误。如果该变量不在标签上,将出现错误。step
和 number of repetitions
是计算器变量的参数。这些参数在计数器更改值前指定计数器增量和标签数量。
如果值包含空格或逗号字符,则必须将文本放在双引号 ("
) 内。另请参阅 TEXTQUALIFIER。
如果要分配多行值,请使用 \r\n
对换行符进行编码。\r
替换为 CR(回车),\n
替换为 LF(换行)。
设置变量值为标签上的图片提供数据时要小心,因为反斜杠字符可能会替换为其他字符。
SETPRINTPARAM
SETPRINTPARAM <paramname> = <value>
此命令用来在打印前设定微调打印机设置。支持的打印机设置参数 (paramname
) 如下:
-
PAPERBIN.指定包含标签介质的纸盘。如果打印机配有多个纸盘/标签托盘,则可控制使用哪个进行打印。应从打印机驱动程序获取纸盘的名称。
-
PRINTSPEED.指定打印速度。可接受的值因打印机而异。有关值的精确范围,请参阅打印机手册。
-
PRINTDARKNESS.指定打印浓度/对比度。可接受的值因打印机而异。有关值的精确范围,请参阅打印机手册。
-
PRINTOFFSETX.指定所有打印对象的左偏移。参数值必须为数字(正值或负值,以点数为单位)。
-
PRINTOFFSETY。指定所有打印对象的顶部偏移。参数值必须为数字(正值或负值,以点数为单位)。
-
PRINTERSETTINGS。指定要应用于打印作业的自定义打印机设置。该参数需要目标打印机的整个 DEVMODE(以 Base64 编码的字符串提供)。DEVMODE 同时包含打印机驱动程序中的所有参数(速度、浓度、偏移等)。有关详细信息,请参阅《NiceLabel Automation 用户指南》中的主题“了解打印机设置和 DEVMODE”。
注意
必须将 Base64 编码的字符串放在双引号 (") 内。
TEXTQUALIFIER
TEXTQUALIFIER <character>
文本限定符是嵌入分配给变量的数据值的字符。每当数据值包含空格字符时,它就必须随文本限定符提供。默认的文本限定符是双引号字符 ("
)。由于双引号字符用作度量单位英寸的快捷方式,因此有时难以将带有英寸标记的数据传入 JOB 文件。您可以使用两个双引号编码一个双引号,或者使用 TEXTQUALIFIER。
XML 命令文件中提供的命令构成 NiceLabel 命令的子集。您可以使用下列命令:
-
LOGIN
-
LABEL
-
SET
-
PORT
-
PRINTER
-
SESSIONSTART
-
SESSIONEND
-
SESSIONPRINT
如果在 XML 文件中使用,则需要略微调整语法。
可以使用下列操作执行 XML 命令文件:
XML 命令文件中的根元素是 <Nice_Commands>
。必须跟随的下一个元素是 <Label>
,用于指定要使用的标签。
开始标签打印的方法有两种:
-
通常使用
<Print_Job>
元素打印标签。 -
使用
<Session_Print_Job>
元素打印会话中的标签。
还可以使用要打印的标签更改打印机,然后设置变量值。
本节定义 XML 命令文件结构。有几个元素包含属性。某些属性是必需的,而其他属性则为可选。某些属性只能占用预定义的值。对于其他属性,您可以指定自定义值。
-
<Nice_Commands>.这是根元素。
-
<Label>.指定要打开的标签文件。如果标签已打开,则不会重新打开。标签文件必须可从此计算机访问。有关详细信息,请参阅《NiceLabel Automation 用户指南》中的主题“访问网络共享资源”。此元素可能在命令文件中出现多次。
-
Name。此属性包含标签名称。您可以包括标签名称的路径。强制元素。
-
-
<Print_job>.包含一个标签作业的数据的元素。此元素可能在命令文件中出现多次。
-
Printer。使用此属性可覆盖标签中定义的打印机。该打印机必须可从此计算机访问。有关详细信息,请参阅主题“访问网络共享资源”。可选元素。
-
Quantity。使用此属性可指定要打印的标签数量。可能的值:数字值、VARIABLE 或 UNLIMITED。有关参数的详细信息,请参阅主题打印标签。强制元素。
-
Skip。使用此属性可指定要在开头跳过的标签数量。如果将一页标签打印到激光打印机,但是该页已部分打印,则此功能非常有用。有关详细信息,请参阅主题打印标签。可选元素。
-
Job_name。使用此属性可指定作业文件的名称。指定名称在后台打印程序中可见。有关详细信息,请参阅主题设置打印作业名称。可选元素。
-
Print_to_file。使用此属性可指定要保存打印机命令的文件名。有关详细信息,请参阅主题重定向打印到文件。可选元素。
-
Identical_copies.使用此属性可指定每个标签所需的副本数。有关详细信息,请参阅主题打印标签。可选元素。
-
-
<Session_Print_Job>.包含一个或多个会话的命令和数据的元素。该元素可以包含一个或多个
<Session>
元素。它考虑了会话打印规则。您可以在命令文件中多次使用该元素。有关可用属性,请查找元素<Print_Job
> 的属性。所有这些属性均有效,只不过无法使用 quantity 属性。请参阅元素<Session>
的说明,了解如何指定会话打印中的标签数量。 -
Store_job.使用此属性可将标签存储到打印机。有关详细信息,请参阅主题 存储标签到打印机。
-
Store_name.使用此数值可将标签存储到打印机。可选元素。
-
Store_variant.存储标签的存储单元(U 盘、SD 卡、DRAM)。请查看您的打印机驱动程序设置的确切名称。可选元素。
-
Job_name。使用此属性可指定作业文件的名称。指定名称在后台打印程序中可见。有关详细信息,请参阅主题设置打印作业名称。可选元素。
注意
要从打印机中调用标签,请使用与打印相同的要素。
要素 job_name 为空时,使用 label name 要素值从打印机存储器中调用正确的标签。
-
-
<Session>.包含单个会话的数据的元素。在会话中打印时,所有标签将编码到单个打印作业并作为一个作业发送到打印机。
-
Quantity。使用此属性可指定要打印的标签数量。可能的值:数字值、字符串 VARIABLE 或字符串 UNLIMITED。有关参数的详细信息,请参阅主题打印标签。必需。
-
Skip。指定在第一页标签上跳过的标签数。该页标签可能已经打印一次,但未全部打印。您可以偏移起始位置来重复使用同一页。如果将标签打印到标签页而不是标签卷,则此选项适用,因此它对办公室打印机很有效,但对标签打印机无效。可能的值:数字值或字符串 VARIABLE。有关参数的详细信息,请参阅主题打印标签。可选。
-
Identical_copies。指定计划为每个唯一标签打印的标签副本数。对于固定标签,此选项产生的结果与主标签数量选项相同。对于可变标签(例如,使用计数器的标签),您可以获得实际标签副本。可能的值:数字值或字符串 VARIABLE。有关参数的详细信息,请参阅主题打印标签。可选。
-
Number_of_sets(标签数量)。指定整个标签打印过程重复次数。可能的值:数字值或字符串 VARIABLE。有关参数的详细信息,请参阅主题打印标签。可选。
-
-
<Variable>.在标签上设置变量值的元素。此元素可能在命令文件中出现多次。
-
Name。该属性包含变量名称。必需。
-
XML 命令文件的 XML 架构定义 (XSD)
<?xml version="1.0" encoding="utf-8"?> <xs:schema targetNamespace="http://tempuri.org/XMLSchema.xsd" elementFormDefault="qualified" xmlns="http://tempuri.org/XMLSchema.xsd" xmlns:mstns="http://tempuri.org/XMLSchema.xsd" xmlns:xs="http://www.w3.org/2001/X MLSchema"> <xs:element name="nice_commands"> <xs:complexType> <xs:sequence> <xs:element name="label" maxOccurs="unbounded" minOccurs="1"> <xs:complexType> <xs:sequence> <xs:element name="print_job" maxOccurs="unbounded" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element name="database" maxOccurs="unbounded" minOccurs="0"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="name" type="xs:string" use="required" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="table" maxOccurs="unbounded" minOccurs="0"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="name" type="xs:string" use="required" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="variable" maxOccurs="unbounded" minOccurs="0"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="name" type="xs:string" use="required" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="quantity" type="xs:string" use="required" /> <xs:attribute name="printer" type="xs:string" use="optional" /> <xs:attribute name="skip" type="xs:integer" use="optional" /> <xs:attribute name="identical_copies" type="xs:integer" use="optional" /> <xs:attribute name="number_of_sets" type="xs:integer" use="optional" /> <xs:attribute name="job_name" type="xs:string" use="optional" /> <xs:attribute name="print_to_file" type="xs:string" use="optional" /> <xs:attribute name="print_to_file_append" type="xs:boolean" use="optional" /> <xs:attribute name="clear_variable_values" type="xs:boolean" use="optional" /> </xs:complexType> </xs:element> <xs:element name="session_print_job" maxOccurs="unbounded" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element name="database" maxOccurs="unbounded" minOccurs="0"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="name" type="xs:string" use="required" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="table" maxOccurs="unbounded" minOccurs="0"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="name" type="xs:string" use="required" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="session" minOccurs="1" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="variable" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="name" type="xs:string" use="required" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="quantity" type="xs:string" use="required" /> <xs:attribute name="skip" type="xs:string" use="optional" /> <xs:attribute name="identical_copies" type="xs:string" use="optional" /> <xs:attribute name="number_of_sets" type="xs:string" use="optional" /> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="printer" type="xs:string" use="optional" /> <xs:attribute name="skip" type="xs:integer" use="optional" /> <xs:attribute name="job_name" type="xs:string" use="optional" /> <xs:attribute name="print_to_file" type="xs:string" use="optional" /> <xs:attribute name="print_to_file_append" type="xs:boolean" use="optional" /> <xs:attribute name="clear_variable_values" type="xs:boolean" use="optional" /> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="name" type="xs:string" use="required" /> <xs:attribute name="close" type="xs:boolean" use="optional" /> <xs:attribute name="clear_variable_values" type="xs:boolean" use="optional" /> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="quit" type="xs:boolean" use="required" /> </xs:complexType> </xs:element> </xs:schema>
以下示例提供了可在 XML 命令文件中使用的元素及其属性的结构视图。
<nice_commands> <label name="label1.nlbl"> <session_print_job printer="CAB A3 203DPI" skip=0 job_name="job name 1" print_to_file="filename 1"> <session quantity="10" skip="2" identical_copies="1" number_of_sets="4"> <variable name="variable name 1" >variable value 1</variable> </session> </session_print_job> <print_job printer="Zebra R-402" quantity="10" skip=0 identical_copies=1 number_of_sets=1 job_name="job name 2" print_to_file="filename 2"> <variable name="variable1" >1</variable> <variable name="variable2" >2</variable> <variable name="variable3" >3</variable> </print_job> </label> </nice_commands>
此示例演示了如何将标签存储到打印机。
<nice_commands> <label name="label1.nlbl" close="false"> <store_job store_name="label011" store_variant= "DRAM" printer="Zebra R-402" job_name="recall011"> <variable name="country" >Slovenia</variable> <variable name="packaging_type" >big box</variable> <variable name="Warehouse_no" >3</variable> </store_job> </label> </nice_commands>
CSV 命令文件中提供的命令构成 NiceLabel 命令的子集。您可以使用下列命令:LABEL, SET, PORT, PRINTER and PRINT.
可以使用下列操作执行 CSV 命令文件:
CSV 命令文件是用逗号 (,
) 字符分隔值的文本文件。该文本文件可以包含 Unicode 值(对多语言数据非常重要)。CSV 命令文件中的每一行都包含单个标签打印操作的命令。
CSV 命令文件的第一行必须包含命令和变量名称。命令和名称的顺序并不重要,但是同一数据流中的所有记录必须遵循相同的结构。变量名称-值
对将自动提取并发送到引用它们的标签。
注意
如果标签上不存在其名称包含于 CSV 中的变量,则不会发生错误。
第一行数据中的命令必须用 @
字符表示。开头不带 @ 的字段是变量的名称,它们将随其值一起提取作为名称-值
对。
-
@Label。指定要使用的标签名称。最好包括标签路径和文件名。请确保服务用户可以访问文件。有关详细信息,请参阅《NiceLabel Automation 用户指南》中的主题“访问网络共享资源”。必填字段。
-
@Printer。指定要使用的打印机。它将覆盖标签中定义的打印机。请确保服务用户可以访问打印机。有关详细信息,请参阅《NiceLabel Automation 用户指南》中的主题“访问网络共享资源”。可选字段。
-
@Quantity。指定要打印的标签数量。可能的值:数字值、VARIABLE 或 UNLIMITED。有关详细信息,请参阅《NiceLabel Automation 用户指南》中的主题。必填字段。
-
@Skip。指定要在打印的第一页开头跳过的标签数量。如果要重复使用部分打印的标签页,则此功能非常有用。可选字段。
-
@IdenticalCopies。指定应为每个唯一标签打印的标签副本数。如果使用来自数据库的数据打印标签,或者如果使用计数器且需要标签副本,则此功能非常有用。可选字段。
-
@NumberOfSets。指定打印进程应重复的次数。每个标签集定义打印进程的实例。可选字段。
-
@Port。指定打印机的端口名称。您可以按照打印机驱动程序中的指定覆盖默认端口。还可以使用它将打印重定向到文件。可选字段。
-
其他字段名称。所有其他字段定义标签中的变量名称。字段内容将保存到与其值同名的变量。
PAS 命令文件是一个包含 Loftware LPS 打印命令的文本文件。这些命令按从上到下的顺序执行。每个 PAS 文件必须以 *格式(打开标签)命令开始,以 *打印标签命令结束。
可以使用运行命令文件操作执行 PAS 命令文件。
注意
如果您已从 Loftware 迁移至 NiceLabel,可以使用现有的 PAS 命令文件与 NiceLabel 标签模板 (.nlbl) *格式命令检查是否存在与 .lwl 同名的 .nlbl 文件。
*FORMAT,\\127.0.0.1\labelcomputer$\labels\ML2193.lwl *JOBNAME,PastaPallet002 *QUANTITY,1 *PRINTERNUMBER,1 Text0000,New Data Text0001,New Data *PRINTLABEL
注意
如果您想使用 *打印机编号
命令,必须从 LPS 复制 printr32.ini
文件至 c:\Program Files\NiceLabel\NiceLabel 10\\bin.net\Configuration
。
更多关于 PAS 命令的详细信息,请参阅《Loftware LPS 用户指南》。