Создание шаблона вручную.
Джим Эвинс (Jim Evins)
evins@snaught.com
Марио Блатерман (Mario Blättermann)
mariobl@gnome.org

Creative Commons Share Alike 3.0

# Создание шаблона вручную

Эта страница служит в качестве справочного руководства по созданию шаблонов в gLabels. Шаблоны gLabels определяются в обычных XML-файлах, описание которых (DTD) можно найти здесь. DTD описывает и другие файлы XML, которые используются в gLabels.

Созданный вручную файл шаблона должен быть помещён в каталог ${HOME}/.glabels и иметь расширение .template.

gLabels ищет шаблоны в нескольких каталогах:

Местоположение | Описание
${prefix}/share/libglabels-3.0/templates | Шаблоны, поставляемые с gLabels. ${prefix} — это чаще всего каталог /usr или /usr/local в зависимости от того, куда был установлен gLabels.
${XDG_CONFIG_HOME}/libglabels/templates | Пользовательские шаблоны gLabels создаются при помощи Дизайнера шаблонов. Не помещайте в этот каталог шаблоны, созданные вручную. Если переменная ${XDG_CONFIG_HOME} не определена, то используется каталог по умолчанию ${HOME}/.config.
${HOME}/.glabels | Шаблоны, созданные пользователем вручную, должны помещаться в этот каталог. Более старые версии Дизайнера шаблонов (до версии 3.0) также помещали шаблоны в этот каталог.

Окончательные файлы шаблонов можно отправить в список рассылки, чтобы этот шаблон мог быть включён в последующие версии gLabels.

# Предварительные сведения

На листе могут находиться этикетки или визитки только одного и того же размера (если на листе находится несколько этикеток или визиток с разными размерами, их можно разбить на несколько шаблонов)

Distances can be expressed in units of `pt`, `in`, `mm`, `cm`, or `pc`. For example: "`1.0in`" or "`2.54cm`". If no units are specified, computer points (`pt`) will be assumed (1 pt = 1/72 in = 0.352778 mm).

# Файлы шаблонов

A template file contains a single `Glabels-templates` top-level node.

<?xml version="1.0"?> <Glabels-templates>

...шаблоны...

</Glabels-templates>

## Пример шаблона

Example gLabels template file containing a single `Template` node.
<?xml version="1.0"?> <Glabels-templates>

<Template brand="Avery" part="8160" size="US-Letter" description="Mailing Labels"> <Meta category="label"/> <Meta category="mail"/> <Meta product_url="http://www.avery.com/avery/en_us/"/> <Label-rectangle id="0" width="189pt" height="72pt" round="5pt"> <Markup-margin size="5pt"/> <Layout nx="3" ny="10" x0="11.25pt" y0="36pt" dx="200pt" dy="72pt"/> </Label-rectangle> </Template>

</Glabels-templates>

# Template Node

A `Template` node describes a single stationery product. It must contain one instance of any type of Label node (`Label-rectangle`, `Label-round`, or `Label-cd`).

Свойства | Описание
`brand` | Брэнд или производитель канцелярского изделия. Например, «Avery».
`part` | Шифр компонента или название канцелярского изделия. Например, «8160».
`размер` | Size of sheet. E.g., "`US-Letter`", "`A4`", ...
`описание` | Описание канцелярского изделия. Например, «Mailing Labels» (почтовые ярлыки).
`description` | Описание канцелярского изделия, которое можно переводить. Например, «Mailing Labels.» (почтовые ярлыки). Это полезно только для предустановленных шаблонов.
`width` | Ширина страницы. Применяется только в том случае, если значение атрибута size равно «Other»
`height` | Высота страницы. Применяется только в том случае, если значение атрибута size равно «Other»
`equiv` | Эквивалентный шифр компонента. Если это свойство присутствует, то шаблон является копией другого шаблона того же самого брэнда. Шаблон наследует все свойства за исключением брэнда и названия. Это свойство должно ссылаться на предыдущий шаблон. gLabels пока что не поддерживает опережающие ссылки.

# Meta Node

A `Meta` node contains some additional information about the template. A `Template` node may contain zero or more `Meta` nodes.

Подчинённый узел | Описание

`category`

A category for the template. A template can belong to multiple categories by simply adding multiple `Meta` nodes to the parent `Template` node. Template categories are used by the gLabels New Label Dialog to filter the results of template searches.

Значение этой категории должно совпадать с предопределённым идентификатором категории в файле ${prefix}/libglabels-3.0/templates/categories.xml. Текущие определённые идентификаторы категорий включают в себя:

`label`

`round-label`

`elliptical-label`

`square-label`

`rectangle-label`

`card`

`business-card`

`media`

`mail`

`foldable`

`photo`

`product_url` | Адрес URL, указывающий на веб-страницу изделия (если есть).

Предложения по дополнительным категориям можно отправлять в список рассылки разработчиков gLabels.

URL изделия имеет ограниченное применение, т. к. этот адрес может быть непостоянным.

# Label-rectangle Node

A `Label-rectangle` node describes the dimensions of a single label or business card that is rectangular in shape (may have rounded edges).

Свойства | Описание
`id` | Зарезервировано для использования в будущем. Всегда должно иметь нулевое (0) значение.
`width` | Ширина этикетки/визитки
`height` | Высота этикетки/визитки
`round` | Радиус закругления углов. Для элементов с прямоугольными гранями (визитные карточки) радиус должен иметь нулевое (0) значение.
`x_waste` | Горизонтальный отступ. Полезно для минимизации проблем при выравнивании, когда используется фон, отличный от белого (например, изображение).
`y_waste` | Вертикальный отступ. Полезно для минимизации проблем при выравнивании, когда используется фон, отличный от белого (например, изображение).

Label-rectangle parameters

Label-rectangle parameters

# Label-ellipse Node

A `Label-ellipse` node describes the dimensions of a single label or business card that is elliptic in shape.

Свойства | Описание
`id` | Зарезервировано для использования в будущем. Всегда должно иметь нулевое (0) значение.
`width` | Ширина эллипса
`height` | Высота эллипса
`waste` | Отступ. Полезно для минимизации проблем при выравнивании, когда используется фон, отличный от белого (например, изображение).

Label-ellipse parameters

Label-ellipse parameters

# Label-round Node

A `Label-round` node describes the dimensions of a simple round label (not a CD).

Свойства | Описание
`id` | Зарезервировано для использования в будущем. Всегда должно иметь нулевое (0) значение.
`radius` | Радиус (половина диаметра) этикетки
`waste` | Отступ. Полезно для минимизации проблем при выравнивании, когда используется фон, отличный от белого (например, изображение).

Label-ellipse parameters

Label-ellipse parameters

# Label-cd Node

A `Label-cd` node describes the dimensions of a CD, DVD, or business card CD.

Свойства | Описание
`id` | Зарезервировано для использования в будущем. Всегда должно иметь нулевое (0) значение.
`radius` | Внешний радиус этикетки
`hole` | Радиус концентрической окружности
`width` | Если присутствует, этикетка будет обрезана по указанной ширине. Полезно для дисков в форме визиток.
`height` | Если присутствует, этикетка будет обрезана по указанной высоте. Полезно для дисков в форме визиток.
`waste` | Отступ. Полезно для минимизации проблем при выравнивании, когда используется фон, отличный от белого (например, изображение).

Label-cd parameters

Параметры вкладыша для CD

# Markup Nodes

Шаблоны могут содержать необязательные узлы разметки. Эти узлы применяются для описания разметочных линий, которые будут показаны в области рисования glabels, но не выводятся на печать. Эти линии могут использоваться для отступов, линий сгибов, центральных линий, особых зон и других полезных элементов.

## Markup-margin Node

A `Markup-margin` describes a margin along all edges of a label.

Свойства | Описание
`размер` | Размер поря, т. е. расстояние до границы этикетки.

## Markup-line Node

A `Markup-line` node describes a markup line.

Свойства | Описание
`x1` | Координата по оси X первой точки линейного сегмента.
`y1` | Координата по оси Y первой точки линейного сегмента.
`x2` | Координата по оси X второй точки линейного сегмента.
`y2` | Координата по оси Y второй точки линейного сегмента.

## Markup-circle Node

A `Markup-circle` describes a markup circle.

Свойства | Описание
`x0` | Координата по оси X исходной окружности (центр).
`y0` | Координата по оси Y исходной окружности (центр).
`radius` | Радиус окружности.

## Markup-rect Node

A `Markup-rect` describes a markup rectangle.

Свойства | Описание
`x1` | Координата по оси X левого верхнего угла прямоугольника.
`y1` | Координата по оси Y левого верхнего угла прямоугольника.
`w` | Ширина прямоугольника.
`h` | Высота прямоугольника
`r` | Радиус закругления углов.

## Markup-ellipse Node

A `Markup-ellipse` describes a markup ellipse.

Свойства | Описание
`x1` | Координата по оси X левого верхнего угла эллипса.
`y1` | Координата по оси Y левого верхнего угла эллипса.
`w` | Ширина эллипса.
`h` | Высота эллипса.

# Layout Node

A label node may contain multiple `Layout` children. If labels are arranged in a simple grid pattern, only one layout is needed. However, if labels are arranged in multiple grids, such as a running bond pattern, multiple `Layout` tags can be used.

Примером использования нескольких слоёв может служить лист с тремя этикетками для CD:

Страница с этикеткой для CD

Страница с этикеткой для CD

Две этикетки с левой стороны могут быть включены в сетки, предположим, что мы можем определить координаты левой верхней этикетки и расстояние до второй этикетки. Расстояние до границы слева — общая величина для этих этикеток. У третьей этикетки справа нет общих значений расстояния с другими этикетками, поэтому необходимо задать второй слой со своими координатами для левого верхнего угла этикетки.

Установка нескольких слоёв возможна только в том случае, если этикетки на странице имеют одну и ту же форму. Если на странице расположены различные этикетки, для каждой формы необходимо определить свой отдельный шаблон. В будущих версиях gLabels может быть появится возможность объединять различные формы в одном шаблоне.

Одну этикетку можно рассматривать как сетку с одним элементом.

Свойства | Описание
`nx` | Количество этикеток/визиток в сетке (по горизонтали)
`ny` | Количество этикеток/визиток в сетке (по вертикали)
`x0` | Расстояние от левой границы листа до левой границы левого столбца с этикетками или визитками.
`y0` | Расстояние от верхней границы листа до верхней границы верхней строки с этикетками или визитками.
`dx` | Горизонтальный шаг сетки.
`dy` | Вертикальный шаг сетки.

Layout parameters

Layout Parameters