zpl epl в чем разница

Язык программирования FingerPrint. Преимущества работы с языком программирования для принтеров

Что представляет собой язык программирования Fingerprint?

Принтеры Intermec поставляются с предустановленными оболочками для Direct Protocol и FingerPrint. Целесообразность использования каждого из них определяется поставленной задачей. и степенью требуемой гибкости.

ПроизводительЯзык программирования через командную строкуИнструмент программирования приложений
IntermecIPL, Direct ProtocolFingerprint
DatamaxDPLнет
ZebraZPLнет
EltronEPLнет

Основные различия между DPL, ZPL, EPL и т.д. и Fingerprint следующие:

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

Когда нет возможности внести необходимые изменения в программное обеспечение хоста, между ним и принтером нужно установить ещё один компьютер, который будет преобразовывать команды хоста в команды, понятные принтеру.

При использовании FingerPrint всё происходит наоборот: в программное обеспечение принтера вносятся изменения, которые, в последствии, позволяют принтеру понимать команды хоста.

Более того, принтер на основе FingerPrint также можно запрограммировать для

Принтер на основе FingerPrint можно назвать печатающим компьютером, что позволяет интегрировать принтер в уже функционирующую систему без дополнительных затрат. Более того, FingerPrint позволяет перенастроить любую функциональность принтера под свои нужды, что позволит еще больше расширить его возможности и добиться полного соответствия требованиям клиента.

Вот несколько довольно показательных примеров того, что можно сделать с помощью FingerPrint:

Итак, каковы преимущества использования FingerPrint:

Список принтеров, поддерживающих работу с языком программирования FingerPrint:

Обращаем Ваше внимание на то, что Компания Скейл уже использовала FingerPrint для создания комплексных решений «ПринтВес» и «ПринтВес Скан», которые очень наглядно демонстрируют, как два разных по свойствам и по функционалу устройства, все-таки работают в одной связке, без участия «посредника», в виде персонального компьютера.

Источник

Принтеры штрих кодов в автоматизации торговли

zpl epl в чем разница. Смотреть фото zpl epl в чем разница. Смотреть картинку zpl epl в чем разница. Картинка про zpl epl в чем разница. Фото zpl epl в чем разницаПринтеры штрих кодов и этикеток занимают важное место в процессе автоматизации торгово-складской деятельности. С помощью таких устройств можно организовать процесс этикетирования на малом, крупном или среднем предприятии.

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

По способу печати различают 2 основных типа принтеров: термо- и термотрансферные. Каждый из этих типов имеет свои особенности. Выбирать то или иное устройство необходимо исходя из конкретных условий.

Настольные
zpl epl в чем разница. Смотреть фото zpl epl в чем разница. Смотреть картинку zpl epl в чем разница. Картинка про zpl epl в чем разница. Фото zpl epl в чем разницаПринтеры данного класса занимают немного места в оснащении рабочих мест и имеют оптимальную производительность.

Как правило, они широко используются в офисах, на небольших предприятиях, где потребность в печати не превышает 5000 этикеток в сутки.

К настольным термопринтерам следует отнести Godex DT2/DT4, Zebra GK420D. Среди наиболее популярных компактных устройств термотрансферной печати выделяют Godex G300/G330, G500/G530.

Промышленные
zpl epl в чем разница. Смотреть фото zpl epl в чем разница. Смотреть картинку zpl epl в чем разница. Картинка про zpl epl в чем разница. Фото zpl epl в чем разницаДля оснащения крупных предприятий существуют целые линейки промышленных принтеров штрихкода.

Такие устройства имеют высокую производительность и возможность для установки специальных аксессуаров: намотчиков и держателей этикеток, роторного резака и т.д. Особый интерес на рынке вызвали такие модели как Godex EZ6200 plus, EZ6300 plus, EZ2200.за счет оптимального соотношения цены и качества.

Мобильные
zpl epl в чем разница. Смотреть фото zpl epl в чем разница. Смотреть картинку zpl epl в чем разница. Картинка про zpl epl в чем разница. Фото zpl epl в чем разницаМобильные принтеры имеют немаловажное преимущество – компактный размер. Устройства могут работать автономно или от сети.

Они могут оснащаться как поддержкой беспроводных интерфейсов Wi-Fi (Sewoo LK-P11SW), так и Bluetooth (Sewoo LK-P11SB).

zpl epl в чем разница. Смотреть фото zpl epl в чем разница. Смотреть картинку zpl epl в чем разница. Картинка про zpl epl в чем разница. Фото zpl epl в чем разница

Термопечать

Термопринтеры имеют привлекательную стоимость и невысокую стоимость обслуживания. В качестве расходных материалов нужна только термобумага. Срок службы таких этикеток до момента выцветания составляет несколько месяцев, в зависимости от температурных условий. Однако стоимость печати и расходных материалов очень доступная. Оптимальным выбором термопринтер станет для оснащения кассы быстрого обслуживания или изготовления билетов, где этикетка изготавливается на несколько часов или дней, а впоследствии утилизируется. Термоэтикетку можно определить, проведя ногтем по ее поверхности, в результате чего должен остаться черный след.

Термотрансферная печать

Технологии термотрансферной печати применяются в промышленных условиях. Высокое качество, долговечность и устойчивость к истираниям объясняется технологиями термопереноса. То есть, в отличие от термопечати здесь идет использование красящего слоя (риббона). Срок службы термотрансферных этикеток может составлять несколько лет. Еще один плюс – разнообразие материалов, включая печать на синтетических, нейлоновых лентах, глянце и т.д. Как правило еще их называют полуглянцевыми. Бумажные этикетки для термотрансферной печати используются чаще за счет доступной стоимости и применяются для локальных инвентаризаций и маркировки. Однако синтетические имеют более высокую устойчивость к влаге и истираниям.
Термотрансферные принтеры могут выпускаться как в компактном настольном корпусе, так и в промышленных сериях для большого объема печати.

Сравнительная характеристика термо- и термотранферной печати.

термопечатьтермотрансферная печать
носителитермобумаганейлоновые, синтетические, полимерные этикетки,
расходные материалытолько термоэтикеткитермотрансферные этикетки, риббоны
риббоныне используютсявоск (WAX), смола (RESIN), воск+смола (WAX+RESIN)
разрешение печати203/300 dpi (от модели)203/300 dpi (от модели)
срок службы этикеткинесколько месяцевнесколько лет
стойкость краски к истираниям, механическим воздействиям, критическим условиямнизкаявысокая
средний ресурс печатной головкиоколо 50 кмоколо 50 км.
наиболее популярные принтерыGodex DT2, Godex DT4, ZEBRA GK420d (USB+RS232+LPT)Godex G300/330, Godex G500/G530, Godex RT700/730.

Программирование принтеров

Современные принтеры этикеток поддерживают работу с программными продуктами 1С различных версий. Для того чтобы распечатывать этикетки из программы достаточно установить Windows драйвер. Также для тех, кто привык работать с Linux, существуют драйверы для этой ОС.

У каждого производителя принтеров этикеток есть специальное ПО.
Если сравнивать программное обеспечение этих 2 марок, то у Godex преимуществ больше.
Принтеры Zebra оснащены тестовым ПО ZebraDezigner. Полные версии в комплект не входят, и их необходимо приобретать за дополнительную плату. У принтеров Zebra управление устройствами выполняется с помощью языков программирования ZPL и EPL.

Принтеры Godex оснащаются бесплатной программой GoLabel, а набор команд задается на специальном языке программирования Godex EZPL, при этом устройства способны распознавать и языки ZPL и EPL. При этом принтеры поддерживают режим автопереключения.

Программа GoLabel позволяет создавать и редактировать макеты этикеток, синхронизироваться с базой 1С. Программа оснащена широким набором базовых шрифтов и поддерживает загрузку дополнительных, что позволяет полностью обслуживать принтер и делать даже сложные макеты этикеток. В отличие от профессиональной программы Bartender, она полностью бесплатна и имеет достаточно широкий функционал, включая работу с SQL. GoLabel — комплексное ПО для подключения принтера, осуществления настроек, работы с макетами, загрузке шрифтов и т.д.

Источник

Небольшой путеводитель по ZPL

Добрый день, Хабрахабр.

Благодаря тепло принятой прошлой публикации, я могу опубликовать здесь эту статью. Спасибо всем, кто ставил плюсы.
По долгу службы мне частенько приходится формировать отчеты для этикеточных принтеров семейства Zebra.
zpl epl в чем разница. Смотреть фото zpl epl в чем разница. Смотреть картинку zpl epl в чем разница. Картинка про zpl epl в чем разница. Фото zpl epl в чем разница
Зебры они такие
Механизм формирования этикеток выглядит следующим образом: сначала с машины пользователя (компьютер, терминал сбора данных) на принтер отправляется специальным образом оформленная строка, затем внутренний процессор принтера обрабатывает эту строку, и выводит ее на печать.Но язык, на котором формируется строка для принтера (называется ZPL) на первый взгляд вызывает у непосвящённых нервную икоту и мандраж.
Прошу под кат, всех кто хочет разобраться в данном вопросе.

Пример:

А на печать выводится такой аккуратный бейджик:
zpl epl в чем разница. Смотреть фото zpl epl в чем разница. Смотреть картинку zpl epl в чем разница. Картинка про zpl epl в чем разница. Фото zpl epl в чем разница
Давайте разберемся, что же написано в этом коде, и рассмотрим основные элементы.
Первую часть своего выступления я посвящу разбору синтаксиса этого языка, в объеме достаточном для создания этикеток удовлетворительного качества. Во-второй части, приведу примеры кода на Java и VisualBasic, для того, чтобы отправить этикетку на печать самостоятельно. На основе этих примеров, вы сможете самостоятельно построить свою програму, для печати.

Часть 1. Синтаксис ZPL

Во первых, все измерения в ZPL указываются в точках (points). Поэтому, для более ясного представления вы должны посмотреть в документации на принтер, какая у вас плотность точек на единицу измерения длины.
Сначала кратко пробежимся по основным командам, затем рассмотрим их более подробно в связке.
1. Начало и конец ZPL-кода:
^XA – начало кода, ^XZ – конец кода;

2.Отступы для последующего содержимого:
^FO x,y где: x – отступ от левого края, y – отступ сверху;

3.Разделитель полей:
^FS — обозначает конец определения поля. Буквально можно считать его сигналом конца строки;

4.2. Вывод текста с параметрами указанными в предыдущем пункте:
^FD

zpl epl в чем разница. Смотреть фото zpl epl в чем разница. Смотреть картинку zpl epl в чем разница. Картинка про zpl epl в чем разница. Фото zpl epl в чем разница

Повернем, и изменим шрифт:

zpl epl в чем разница. Смотреть фото zpl epl в чем разница. Смотреть картинку zpl epl в чем разница. Картинка про zpl epl в чем разница. Фото zpl epl в чем разница

Изменим шрифт на S:

zpl epl в чем разница. Смотреть фото zpl epl в чем разница. Смотреть картинку zpl epl в чем разница. Картинка про zpl epl в чем разница. Фото zpl epl в чем разница

Обязательно запомните, что разные шрифты могут выглядеть по разному, в отношении размеров, как можно видеть выше. Я чаще всего использую шрифт S.

5.Блок текста:

zpl epl в чем разница. Смотреть фото zpl epl в чем разница. Смотреть картинку zpl epl в чем разница. Картинка про zpl epl в чем разница. Фото zpl epl в чем разница

Изменим код, чтобы было две строки, и расстояние между строчками сделаем в 10 точек:

zpl epl в чем разница. Смотреть фото zpl epl в чем разница. Смотреть картинку zpl epl в чем разница. Картинка про zpl epl в чем разница. Фото zpl epl в чем разница

А теперь сделаем отступ для второй строки в 30 точек влево:

zpl epl в чем разница. Смотреть фото zpl epl в чем разница. Смотреть картинку zpl epl в чем разница. Картинка про zpl epl в чем разница. Фото zpl epl в чем разница

6. Рисование прямоугольников:

zpl epl в чем разница. Смотреть фото zpl epl в чем разница. Смотреть картинку zpl epl в чем разница. Картинка про zpl epl в чем разница. Фото zpl epl в чем разница

zpl epl в чем разница. Смотреть фото zpl epl в чем разница. Смотреть картинку zpl epl в чем разница. Картинка про zpl epl в чем разница. Фото zpl epl в чем разница

Если хотим нарисовать просто линию, то рисуем прямоугольник с высотой равной 0:

zpl epl в чем разница. Смотреть фото zpl epl в чем разница. Смотреть картинку zpl epl в чем разница. Картинка про zpl epl в чем разница. Фото zpl epl в чем разница

7.Штрихкод состоит из трех команд – первая задает его размеры, вторая настройки и третья — содержание:

^BC – штрихкод в стандарте 128 (подробнее Code_128); Есть также еще несколько форматов, но ввиду того, что мне не приходилось ими пользоваться, в данной статье они рассматриваться не будут, и рекомендую посмотреть информацию по ним в официальной документации поставляемой к принтерам Zebra;

7.3. Вывод штрихкода на печать:
^FD

К сожалению, штрихкод нельзя поместить в «коробку», как текст, чтобы отцентрировать по ширине этикетки, и поэтому приходится шаманить с полями и отступами.

zpl epl в чем разница. Смотреть фото zpl epl в чем разница. Смотреть картинку zpl epl в чем разница. Картинка про zpl epl в чем разница. Фото zpl epl в чем разница

Перевернем, и укажем печатать расшифровку сверху (сейчас получилось снизу):

zpl epl в чем разница. Смотреть фото zpl epl в чем разница. Смотреть картинку zpl epl в чем разница. Картинка про zpl epl в чем разница. Фото zpl epl в чем разница

На этом остановимся на рассмотрении основных элементов ZPL, и перейдем к части второй, в которой вкратце рассмотрим механизм отправки информации на принтер.

Часть 2. Печать

Механизм передачи проще некуда. Для этого, мы должны знать IP, где находится принтер, и порт. Далее, формируем поток, который отправляем по указанному адресу, и получаем на выходе этикетку.
Пример на Visual Basic:

Как видите, ничего сложного. Надеюсь, что моя статья, облегчит путь отважным укротителям Зебр.
Засим позвольте откланяться. Жду советов, критики и поддержки.

Источник

В чем отличие epl от zpl

Добрый день, Хабрахабр.

Благодаря тепло принятой прошлой публикации, я могу опубликовать здесь эту статью. Спасибо всем, кто ставил плюсы.

По долгу службы мне частенько приходится формировать отчеты для этикеточных принтеров семейства Zebra.

Механизм формирования этикеток выглядит следующим образом: сначала с машины пользователя (компьютер, терминал сбора данных) на принтер отправляется специальным образом оформленная строка, затем внутренний процессор принтера обрабатывает эту строку, и выводит ее на печать.Но язык, на котором формируется строка для принтера (называется ZPL) на первый взгляд вызывает у непосвящённых нервную икоту и мандраж.

Прошу под кат, всех кто хочет разобраться в данном вопросе.

^XA ^FO 0,10 ^GB632,0,2^FS ^FO0,25 ^FB632,1,0,C,0 ^ASN,70,70 ^FDWAR INC.^FS ^FO0,100 ^GB632,0,2^FS ^FO0,120 ^FB632,1,0,C,0 ^ASN,60,60 ^FDGoose^FS ^FO0,180 ^FB632,1,0,C,0 ^ASN,60,60 ^FDWild^FS ^FO0,240 ^GB632,0,2^FS ^FO120,260 ^BY2 ^BCN,70,N,N,N ^FDSECRECTCODE^FS — ^XZ

А на печать выводится такой аккуратный бейджик:

Давайте разберемся, что же написано в этом коде, и рассмотрим основные элементы.

Первую часть своего выступления я посвящу разбору синтаксиса этого языка, в объеме достаточном для создания этикеток удовлетворительного качества. Во-второй части, приведу примеры кода на Java и VisualBasic, для того, чтобы отправить этикетку на печать самостоятельно. На основе этих примеров, вы сможете самостоятельно построить свою програму, для печати.

Часть 1. Синтаксис ZPL

Во первых, все измерения в ZPL указываются в точках (points). Поэтому, для более ясного представления вы должны посмотреть в документации на принтер, какая у вас плотность точек на единицу измерения длины.

Сначала кратко пробежимся по основным командам, затем рассмотрим их более подробно в связке.

1. Начало и конец ZPL-кода:

^XA — начало кода, ^XZ — конец кода;

2.Отступы для последующего содержимого:

^FO x,y где: x — отступ от левого края, y — отступ сверху;

^FS — обозначает конец определения поля. Буквально можно считать его сигналом конца строки;

4.Масштабируемый текст. Состоит из двух частей, выбор шрифта и ввод текста:

— по-умолчанию стоит A. Точнее ее даже не надо вводить, другие шрифты можно взять из официальной документации:

N — нормальная ориентация; R — повернуто на 90 градусов по часовой стрелке;

I — перевернуто на 180 градусов; B — повернуто на 270 градусов;

4.2. Вывод текста с параметрами указанными в предыдущем пункте:

^XA ^FO20,20 — отступ по 20 точек от верхнего и левого края этикетки ^ASN,70,70 — нормальная ориентация, шрифт S, высота и ширина 70 точек ^FDWAR INC.^FS — содержание текста WAR INC. ^XZ

Повернем, и изменим шрифт:

^XA ^FO20,20 — отступ по 20 точек от верхнего и левого края этикетки ^ABB,30,30 — повернуто на 270 градусов, шрифт B, высота и ширина 30 точек ^FDWAR INC.^FS — содержание текста WAR INC. ^XZ

Изменим шрифт на S:

^XA ^FO20,20 — отступ по 20 точек от верхнего и левого края этикетки ^ASB,30,30 — повернуто на 270 градусов, шрифт S, высота и ширина 30 точек ^FDWAR INC.^FS — содержание текста WAR INC. ^XZ

Обязательно запомните, что разные шрифты могут выглядеть по разному, в отношении размеров, как можно видеть выше. Я чаще всего использую шрифт S.

5.Блок текста:

— может принимать значения: L(по левому краю), R (по правому краю), C (по центру), J (растянуть текст по ширине поля);

Обычно я использовал данную команду для центрирования текста, или если необходимо разместить текст в несколько строчек. Если текст не умещается в строку, он начинает накладываться сам на себя. И получается так:

^XA ^FO 20,20 ^FB400,1,0,C,0 ^AVN,70,70 ^FDWAR INC WILD GOOSE^FS ^XZ

Изменим код, чтобы было две строки, и расстояние между строчками сделаем в 10 точек:

^XA ^FO 20,20 ^FB400,2,10,C,0 ^AVN,70,70 ^FDWAR INC WILD GOOSE^FS ^XZ

А теперь сделаем отступ для второй строки в 30 точек влево:

^XA ^FO 20,20 ^FB400,2,10,L,30 ^AVN,70,70 ^FDWAR INC WILD GOOSE^FS ^XZ

6. Рисование прямоугольников:

В скобках указаны не обязательные параметры.

Цвет линии: B (черный) или W (белый)

Скругление углов указывается цифрой от 0, до 8 (сильное скругление)

С сильным скруглением:

^XA ^FO20,20 ^GB300,100,2,B,8^FS ^XZ

^XA ^FO20,20 ^GB300,100,2^FS ^XZ

Если хотим нарисовать просто линию, то рисуем прямоугольник с высотой равной 0:

^XA ^FO20,20 ^GB300,0,2^FS ^XZ

7.Штрихкод состоит из трех команд — первая задает его размеры, вторая настройки и третья — содержание:

7.2. Настройки штрихкода:

— N — нормальная ориентация; R — повернуто на 90 градусов по часовой стрелке; I — перевернуто на 180 градусов; B — повернуто на 270 градусов;

, — принимают значения Y (да) или N (нет);

— с этим полем я не разобрался, по умолчанию N;

^BC — штрихкод в стандарте 128 (подробнее Code_128); Есть также еще несколько форматов, но ввиду того, что мне не приходилось ими пользоваться, в данной статье они рассматриваться не будут, и рекомендую посмотреть информацию по ним в официальной документации поставляемой к принтерам Zebra;

7.3. Вывод штрихкода на печать:

К сожалению, штрихкод нельзя поместить в «коробку», как текст, чтобы отцентрировать по ширине этикетки, и поэтому приходится шаманить с полями и отступами.

^XA ^FO 20,20 ^BY3 ^BCN,100,Y,N,N ^FD123456789^FS ^XZ

Перевернем, и укажем печатать расшифровку сверху (сейчас получилось снизу):

^XA ^FO 20,20 ^BY3 ^BCI,100,Y,Y,N ^FD123456789^FS ^XZ

На этом остановимся на рассмотрении основных элементов ZPL, и перейдем к части второй, в которой вкратце рассмотрим механизм отправки информации на принтер.

Часть 2. Печать

Механизм передачи проще некуда. Для этого, мы должны знать IP, где находится принтер, и порт. Далее, формируем поток, который отправляем по указанному адресу, и получаем на выходе этикетку.

Пример на Visual Basic:

Dim i As Double Dim SSCC As String Dim ipAddress As String = «127.0.0.1» Dim port As Integer = 1234 Dim ZPLString As String Try ‘Открываем соединение Dim client As New System.Net.Sockets.TcpClient client.Connect(ipAddress, port) Dim writer As New System.IO.StreamWriter(client.GetStream()) ‘Формируем ZPL-строку ZPLString= «^XA» & «^BY2» & «^FO0,200» & «^FB632,2,0,C,0» & «^ASN,60,60» & «^FDHELLO HABRAHABR. ^FS» & «^XZ» writer.Write(ZPLString) writer.Flush() ‘закрываем соединение writer.Close() client.Close() Catch ex As Exception End Try

Как видите, ничего сложного. Надеюсь, что моя статья, облегчит путь отважным укротителям Зебр.

Засим позвольте откланяться. Жду советов, критики и поддержки.

Источник

Печать Zebra с CUPS без печати ZPL или EPL

У меня есть Zebra GK420d для подключения к OS X через CUPS. Однако, когда я отправляю файлы, написанные в ZPL или EPL, они печатаются только в виде обычного текста.

Мне нужно изменить режим на принтере?

ОТВЕТЫ

Ответ 1

В отличие от других, вам не нужно специально добавлять необработанную очередь.

Имя принтера можно найти по этой ссылке в CUPS:

Это также работает на других платформах, которые используют CUPS, например Linux.

Ответ 2

Вы можете создать необработанную очередь CUPS с помощью lpadmin. В этой командной строке я использовал:

Вы также можете настроить необработанную очередь с помощью веб-администратора CUPS на

Ответ 3

Это немного более полный ответ, поскольку я, кажется, возвращаюсь к этому вопросу каждые пару лет. Для печати с помощью Zebra или других принтеров штрих-кода в Linux из командной строки выполните следующие действия:

Перечислите все цели принтера и найдите принтер, который вы хотите использовать:

Добавить новую очередь:

Проверить доступные очереди:

Создать метку (текстовый файл):

Создайте файл в соответствии с требованиями вашего принтера в EPL (Zebra), ZPL (Zebra), EZPL (Godex).

Предупреждение. Некоторые версии CUPS могут иметь проблемы с необработанными файлами, если они имеют длину не более 512 байт. Более длинные файлы будут печататься, а более короткие будут печататься один раз, а затем останавливаться на пару минут (похоже, что есть тайм-аут в). Обходной путь заключается в том, чтобы добавить комментарии, чтобы расширить его на 512 байт.

Пример файла Zebra (test.epl):

Пример файла Godex (test.ezpl):

Нажмите на принтер:

Ответ 4

Я парень ПК, поэтому я не очень хорошо знаю CUPS, но я использовал zpl и epl на ПК и обнаружил, что им действительно нравится получать необработанные файлы для печати. Я всегда делаю: filecopy «c:\zplfile.txt» «\ имя_компьютера\printershare». Я тоже использовал wordpad, если просто хочу сделать какой-то текст. Но для ярлыков и штрих-кодов я бы посмотрел, есть ли способ отправить необработанный zpl или epl на порт принтера. Надеюсь, это поможет.

Ответ 5

Спасибо. Я посмотрел на него еще немного. Похоже, что при использовании чашек вы не можете отправлять необработанные команды ZPL на принтер. Как и я, я создавал принтер в чашках в качестве сокета и запускал прослушиватель netcat на 9100, а затем выдавал какую-то команду на принтер

и это не передает информацию на принтер, но я видел на некоторых форумах, что вам нужно использовать какую-либо форму языка, например C, для анализа информации

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *