Official translation unavailable. Translate this page with Google:

Спецификации командных файлов

Командные файлы содержат инструкции для процесса печати. Эти инструкции написаны с помощью команд NiceLabel. Команды выполняются поочередно от начала до конца файла. Файлы поддерживают форматирование Юникод, поэтому в них можно включать содержимое на разных языках. Предусмотрено три типа командных файлов.

Командный файл CSV

Команды, доступные в командных файлах CSV, являются подмножеством команд NiceLabel. Доступны следующие команды: LABEL, SET, PORT, PRINTER и PRINT.

CSV расшифровывается как «значения, разделенные запятыми». Файл CSV — это текстовый файл, значения которого разделены запятой (,). Такой текстовый файл может содержать значения в кодировке Юникод (что важно для многоязычных данных). Каждая строка командного файла CSV содержит команды для одного действия печати этикетки.

Первая строка командного файла CSV должна содержать команды и имена переменных. Порядок команд и имен не важен, но все записи в одном потоке данных должны иметь одинаковую структуру. Пары имя-значение переменной извлекаются автоматически и передаются в указанную этикетку. Если в этикетке нет переменной с именем, указанным в CSV, сообщение об ошибке не отображается.

Пример командного файла CSV

Этот пример содержит структурное представление полей, которые можно использовать в командном файле CSV.

@Label,@Printer,@Quantity,@Skip,@IdenticalCopies,NumberOfSets,@Port,Product_ID, Product_Name
label1.nlbl, CAB A3 203 DPI, 100, , , , , 100A, Product 1
label2.nlbl, Zebra R-402, 20, , , , , 200A, Product 2

Спецификация команд CSV

Команды в первой строке данных обозначаются символом (@). Поля без символа @ в начале являются именами переменных. Эти поля извлекаются вместе со значениями в виде пар имя-значение.

  • @Label. Задает имя используемой этикетки. Рекомендуется указывать путь и имя файла этикетки. Убедитесь, что пользователь службы имеет доступ к файлу. Дополнительные сведения см. в разделе «Доступ к сетевым общим ресурсам» руководства пользователя NiceLabel Automation. Это поле является обязательным.

  • @Printer. Задает используемый принтер. Это значение переопределяет принтер, заданный в этикетке. Убедитесь, что пользователь службы имеет доступ к принтеру. Дополнительные сведения см. в разделе Доступ к сетевым общим ресурсам. Это необязательное поле.

  • @Quantity. Задает количество этикеток для печати. Возможные значения: числовое значение, VARIABLE или UNLIMITED. Дополнительные сведения см. в разделе Печать этикетки. Это поле является обязательным.

  • @Skip. Задает количество этикеток, которые нужно пропустить в начале первой печатаемой страницы. Это полезно, если нужно повторно использовать частично напечатанный лист с этикетками. Это необязательное поле.

  • @IdenticalCopies. Задает количество копий этикеток, которые нужно напечатать для каждой уникальной этикетки. Это полезно, если вы печатаете этикетки с данными из базы данных или используете счетчики и вам нужны копии этикеток. Это необязательное поле.

  • @NumberOfSets. Задает количество повторений процесса печати. Каждый набор этикеток соответствует одному повторению процесса печати. Это необязательное поле.

  • @Порт. Задает имя порта принтера. Можно переопределить порт по умолчанию, указанный в драйвере принтера. Поле также можно использовать для перенаправления печати в файл. Это необязательное поле.

  • Другие имена полей. Все остальные поля задают имена переменных из этикетки. Содержимое поля сохраняется в переменной с таким же именем, как у поля.

Командный файл JOB

Командный файл JOB — это текстовый файл, содержащий команды NiceLabel. Команды выполняются сверху вниз. Список команд обычно начинается с команды LABEL (для открытия этикетки), затем идет SET (для установки значения переменной) и, наконец, PRINT (для печати этикетки). Дополнительную информацию о доступных командах см. в разделе Использование пользовательских команд.

Пример командного файла JOB

Файл JOB открывает label2.nlbl, задает значения переменных и печатает одну этикетку. Поскольку нет команды PRINTER для перенаправления печати, печать выполняется с использованием имени принтера, заданного в этикетке.

LABEL "label2.nlbl"
SET code="12345"
SET article="FUSILLI"
SET ean="383860026501"
SET weight="1,0 kg"
PRINT 1

Командный файл XML

Команды, доступные в командных файлах XML, являются подмножеством команд NiceLabel. Доступны следующие команды: LOGIN, LABEL, SET, PORT, PRINTER, SESSIONEND, SESSIONSTART и SESSIONPRINT. Синтаксис этих команд имеет некоторые отличия при использовании в файле XML.

Корневым элементом командного файла XML является <Nice_Commands>. Следующим элементом должен быть <Label>. Этот элемент задает используемую этикетку.

Существует два способа запуска печати этикеток: можно напечатать этикетки в обычном режиме с помощью элемента <Print_Job> или запустить сеансовую печать этикеток с помощью элемента <Session_Print_Job>. Также можно изменить принтер, на котором будут напечатаны этикетки, и дополнительно установить значение переменной.

Пример командного файла XML

Ниже предлагается пример структурного представления элементов и их атрибутов в командном файле 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">
                <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>

Спецификация командного файла XML

В этом разделе содержится описание структуры командного файла XML. Несколько элементов содержат атрибуты. Некоторые атрибуты являются обязательными, а другие являются необязательными. Некоторые атрибуты могут принимать только одно из предварительно определенных значений, а для других можно указать пользовательские значения.

  • <Nice_Commands>: Это корневой элемент.

  • <Label>. Задает файл этикетки для открытия. Если этикетка уже открыта, повторное открытие не выполняется. Файл этикетки должен быть доступен с этого компьютера. Дополнительные сведения см. в разделе Доступ к сетевым общим ресурсам. Этот элемент может использоваться несколько раз в одном командном файле.

    • Имя. Этот атрибут содержит имя этикетки. Имя этикетки может включать путь. Обязательный атрибут.

  • <Print_Job>: Этот элемент содержит данные для одного задания печати этикетки Этот элемент может использоваться несколько раз в одном командном файле.

    • Printer. Используйте этот атрибут для переопределения принтера, заданного в этикетке. Принтер должен быть доступен с этого компьютера. Дополнительные сведения см. в разделе Доступ к сетевым общим ресурсам. Необязательно для заполнения.

    • Quantity. Используйте этот атрибут, чтобы задать количество этикеток для печати. Возможные значения: числовое значение, VARIABLE или UNLIMITED. Подробнее о параметрах см. в разделе Печать этикетки. Обязательный атрибут.

    • Skip. Используйте этот атрибут, чтобы задать количество этикеток, которые нужно пропустить в начале. Это полезно, если нужно напечатать лист с этикетками на лазерном принтере, но лист уже частично занят. Дополнительные сведения см. в разделе Печать этикетки. Необязательно для заполнения.

    • Job_name: Используйте этот атрибут для указания имени файла задания печати. Указанное имя отображается в диспетчере очереди печати. Дополнительные сведения см. в разделе Задать имя задания печати. Необязательно для заполнения.

    • Print_to_file: Используйте этот атрибут, чтобы указать имя файла, в который хотите сохранять команды принтера. Дополнительные сведения см. в разделе Перенаправление печати в файл. Необязательно для заполнения.

    • Identical_copies: Используйте этот атрибут для указания количества копий каждой этикетки. Дополнительные сведения см. в разделе Печать этикетки.

  • <Session_Print_Job>: Элемент, в котором содержатся команды и данные для одного или нескольких сеансов. Элемент может содержать один или несколько элементов <Session>. Он учитывает правила сеансовой печати. Этот элемент можно использовать несколько раз в одном командном файле. Список доступных атрибутов см. в атрибутах элемента <Print_Job>. Все они являются допустимыми, кроме атрибута quantity. Информацию о том, как указать количество этикеток при сеансовой печати, см. в описании элемента <Session>.

  • <Session>. Этот элемент содержит данные для одного сеанса. При сеансовой печати все этикетки объединяются в одно задание печати и передаются на принтер одновременно.

    • Quantity. Используйте этот атрибут, чтобы задать количество этикеток для печати. Возможные значения: числовое значение, строка VARIABLE или строка UNLIMITED. Подробнее о параметрах см. в разделе Печать этикетки. Обязательный атрибут.

  • <Variable>. Этот элемент задает переменные значения на этикетке. Этот элемент может использоваться несколько раз в одном командном файле.

    • Имя. Этот атрибут содержит имя переменной. Обязательный атрибут.

Определение схемы XML (XSD) для командного файла XML

<?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/XMLSchema">
    <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: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>

Спецификации Oracle XML

Oracle определяет формат XML таким образом, чтобы можно было понять, проанализировать и распечатать содержимое XML на этикетках. Определение типа документа (DTD) XML задает теги XML, которые используются в файле XML. Oracle генерирует файлы XML в соответствии с этим DTD, а любое стороннее программное обеспечение преобразует файлы XML в соответствии с этим DTD.

Для запуска командного файла Oracle XML используйте действие Запустить командный файл Oracle XML .

XML DTD

Ниже приведен XML DTD, используемый при форматировании синхронного и асинхронного XML. DTD определяет элементы, используемые в файле XML, список их атрибутов и элементы следующего уровня.

<!ELEMENT labels (label)*>
<!ATTLIST labels _FORMAT CDATA #IMPLIED>
<!ATTLIST labels _JOBNAME CDATA #IMPLIED>
<!ATTLIST labels _QUANTITY CDATA #IMPLIED>
<!ATTLIST labels _PRINTERNAME CDATA #IMPLIED>
<!ELEMENT label (variable)*>
<!ATTLIST label _FORMAT CDATA #IMPLIED>
<!ATTLIST label _JOBNAME CDATA #IMPLIED>
<!ATTLIST label _QUANTITY CDATA #IMPLIED>

Пример Oracle XML

Это файл Oracle XML, предоставляющий данные для одной этикетки (имеется только один элемент <label>).

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE labels SYSTEM "label.dtd">
<labels _FORMAT ="Serial.nlbl" _QUANTITY="1" _PRINTERNAME="" _JOBNAME="Serial">
    <label>
        <variable name= "item">O Ring</variable>
        <variable name= "revision">V1</variable>
        <variable name= "lot">123</variable>
        <variable name= "serial_number">12345</variable>
        <variable name= "lot_status">123</variable>
        <variable name= "serial_number_status">Active</variable>
        <variable name= "organization">A1</variable>
    </label>
</labels>

При выполнении этого файла Oracle XML этикетка serial.nlbl будет напечатана со следующими значениями переменных.

Имя переменной

Значение переменной

item

O Ring

revision

V1

lot

123

serial_number

12345

lot_status

123

serial_number_status

Active

organization

A1

Будет напечатана 1 копия этикетки с именем задания диспетчера очереди печати Serial. В файле XML не указано имя принтера, поэтому этикетка будет напечатана на принтере, который задан в шаблоне этикетки.

Спецификации SAP AII XML

NiceLabel Automation может выступать в качестве контроллера устройств RFID, способного кодировать RFID-метки и печатать этикетки. Дополнительную информацию о спецификациях SAP AII XML см. в документе SAP Auto-ID Infrastructure Device Controller Interface (Интерфейс контроллера устройств инфраструктуры SAP Auto-ID) на веб-странице SAP.

Для запуска такого командного файла используйте действие Запустить командный файл SAP AII XML .

Пример SAP AII XML

Это SAP AII XML, предоставляющий данные для одной этикетки (обратите внимание, что имеется только один элемент <label>).

<?xml version="1.0" encoding="UTF-8"?>
<Command xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Command.xsd">
    <WriteTagData readerID="DEVICE ID">
        <Item>
            <FieldList format="c:\SAP Demo\SAP label.nlbl" jobName="Writer_Device20040929165746" quantity="1">
            <Field name="EPC">00037000657330</Field>
            <Field name="EPC_TYPE">SGTIN-96</Field>
            <Field name="EPC_URN">urn:autoid:tag:sgtin:3.5.0037000.065774.8</Field>
            <Field name="PRODUCT">Product</Field>
            <Field name="PRODUCT_DESCRIPTION">Product description</Field>
            </FieldList>
        </Item>
    </WriteTagData>
</Command>

При выполнении этого файла SAP AI XML этикетка c:\SAP Demo\SAP label.nlbl будет напечатана со следующими значениями переменных.

Имя переменной

Значение переменной

EPC

00037000657330

EPC_TYPE

SGTIN-96

EPC

urn:autoid:tag:sgtin:3.5.0037000.065774.8

PRODUCT

Продукт

PRODUCT_DESCRIPTION

Описание продукта

Будет напечатана 1 копия этикетки с именем задания диспетчера очереди печати Writer_Device2004092916574. В файле XML не указано имя принтера, поэтому этикетка будет напечатана на принтере, который задан в шаблоне этикетки.

PAS Command File

PAS command file is text file that contains Loftware LPS printing commands. The commands execute in order from top to bottom. Each PAS file must start with the *FORMAT (open label) command, and end with the *PRINTLABEL command.

PAS command file can be executed using the action Run Command File.

Примечание

If you migrated from Loftware to NiceLabel, you can use your existing PAS command files with NiceLabel label templates (.nlbl) *FORMAT command checks if .nlbl file exists with the same name as .lwl.

PAS Command File Example

*FORMAT,\\127.0.0.1\labelcomputer$\labels\ML2193.lwl
*JOBNAME,PastaPallet002
*QUANTITY,1
*PRINTERNUMBER,1
Text0000,New Data
Text0001,New Data
*PRINTLABEL

You can find more details about PAS commands in Loftware LPS User Guide.