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 не указано имя принтера, поэтому этикетка будет напечатана на принтере, который задан в шаблоне этикетки.