Имя: Пароль:
1C
 
свободные драйвера для промышленных принтеров этикеток и чеков
0 Denjs
 
22.02.08
00:20
Представляю первые результаты проекта по созданию набора открытых драйверов для промышленных принтеров этикеток и чеков

- кроссплатформенность (Linux, Windows)
- удобный "интуитивно понятный" язык описания задания - аналог html.
- открытая архитектура
- лицензия GNU GPL v.2

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

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

Таким образом задание становится интуитивно понятным - например что бы напечатать строку "жирным" нужно передать драйверу строку вида "<b>ЖирныйТекст</b>".
Теоретический пример задания и отрисовки можно посмотреть здесь: http://linuxforum.ru/index.php?act=attach&type=post&id=6510

Реализованные возможности - в демо примере задания в программе.
Полный список поддерживаемых тегов предоставлен в архиве, в pdf-файле.
-------------------------


В ближайшем будущем будет реализована компонента 1С.
В планах развития - сетевая печать, расширение списка поддерживаемых принтеров, отдельная библиотека.
Планируется подержка как чековых принтеров так и принтеров наклеек (этикеток).

_______________________________________
"Демо-приложение" от 2008.02.19 лежит здесь: http://www.rapidshare.ru/587355
(собственная страница проекта будет создана позже)

К однакомлению предлагается 2 приложения - posHTML-renderer, (ввод текста posHTML задания и управление печатью), и консольное приложение поиска подключенного оборудования.
В posHTML-рендерере доступна загрузка демонстрационного примера.

В архиве лежат 2 сборки: для Linux и Windows.
(под linux необходимы установленные библиотеки QT 4.2)
_______________________________________
На текущий момент поддерживаются принтеры:
- Posiflex Aura PP-5200
- Posiflex Aura PP-7000-II ( незначительные ошибки с определением статуса принтера )

предположительно будут работать: (нужно тестирование)
- Epson TM-88/II
- Epson TM-88/III

Частично (в большей или меньшей степени) будут работать любые ESC/POS принтеры.
По умолчанию считается что принтер подключен к com1. Смотрите ini файл рядом с исполняемым файлом.

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

==================================================
PS: Если есть желающие принять участие в разработке, помочь оборудованием, деньгами , ещё как - прошу обращаться сюда
http://linuxforum.ru/index.php?s=&showtopic=43060&view=findpost&p=601597
1 ТелепатБот
 
гуру
22.02.08
00:20
2 Denjs
 
23.05.08
14:48
Доступен к ознакомлению публичный релиз компонент проекта OTPD (Open Ticket Printer Drivers).
http://otpd.berlios.de

Пока только исходники. Бинарные сборки будут доступны к середине июня.

В альфа-релиз "2008.05.22_0200" вошли следующие исходники программ:
"libotpd" - библиотека содержащая основные механизмы OTPD
"otpd_phtmlrender_probe" - приложение позволяющее "пощупать pHTML" так сказать "в деле". (Окно ввода задания, кнопка загрузки большого примера, кнопка редактирования ini-файла и кнопка "напечатать". все) )
"addin_libotpd.dll" - внешняя компоннента 1С:Предприятие с примером для 1Сv7.7 использования компоненты : [b]addin_libotpd_loadrun.ert[/b].
"image2pbmp_convertor" - конвертер картинок в формат текстового описания pbmp для вставки в pHTML . (см документацию OTPD - описания тегов <img> и <binary>)
+ парочка утилит для поиска подключенного на последовательных портах оборудования.

В данном релизе поддерживается работа с одним принтером подключенным по COM или Ethernet.
----------------------------------------------------------------------------------------------
Поддерживаютя (тестировались) следующие принтеры:
- Posiflex Aura pp5200, pp7000-II, pp7000L ( также должны работать все esc/pos принтеры, включая Epson TM88-II,TM88-III )
- Штрих500 ( ограниченная поддержка )

Поддерживается 2 вида подключения
- COM-порт
- Ethernet

Поддерживаются ОС:
- Linux
- Windows ("win32": (WinXP, Win2000, др))
----------------------------------------------------------------------------------------------

Прошу имеющих возможность собрать и протестировать с esc/pos принтерами - сделайте это.
http://developer.berlios.de/project/showfiles.php?group_id=9484

Мне важно знать: удобство языка pHTML, стабильность работы, корректность работы на различных моделях принтеров.

Для сборки различных программ проекта вам потребуются QT4.3, Delphi 6
см. подробности по установке и сборке см: http://linuxforum.ru/index.php?s=&showtopic=43060&view=findpost&p=652873
3 Denjs
 
23.05.08
15:11
Немного акцентирую внимание на одном из достоинств OTPD:
для формирования чека вы можете использовать шаблоны.
В результате - когда вам надо поменять вид чека - вам не надо перекраивать программу, как например в случае с Aтoл-драйверами принтеров чеков - вы меняете только данные.
К тому-же будущий вид чека на печати в случае OTPD интуитивно понятен - HTML сегодня изучается в школе.

Сравните:
последовательность формирования задания с использоованием Атол-компоненты:
8 строк кода:
-------------------------------------
компонента.Caption = "Жирная ";
компонента.FontBold = TRUE;
компонента.TextNewLine = FALSE;
компонента.AddText();
компонента.Caption = "строка";
компонента.FontBold = FALSE;
компонента.TextNewLine = TRUE;
компонента.AddText();
-------------------------------------

и последовательность формирования задания с использоованием OTPD:
1 строка кода:
-------------------------------------
компонента.send("<phtml><b>Жирная </b>строка<br></phtml>");
-------------------------------------

проще, удобнее, понятнее.

Тем более - строку которую вы загружаете в компонента.send() вы можете загружать из внешнего файла,
и таким образом, менять вид "чека" сможет "штатный системный администратор", что не может не порадовать заказчика.
4 Denjs
 
24.05.08
14:08
выложены сборки для виндоус:

Внешняя компонента 1С - addin_libotpd.dll,
демо-обработка addin_libotpd_loadrun.ert,
otpd_phtmlrender_probe.exe,
библиотека libotpd.dll,
библиотеки QT 4.3.

ссылка на скачивание: http://prdownload.berlios.de/otpd/otpd.addin_libotpd_1C.binaries.2008.05.22_0200.zip
( все файлы OTPD: http://developer.berlios.de/project/showfiles.php?group_id=9484 )


Прошу имеющих доступ к оборудованию скачать (6.5 мегабайт), посмотреть и высказать свои замечания.
5 nop
 
24.05.08
14:10
ничо не понял, но ветка - круть!
6 Denjs
 
24.05.08
14:12
что тут понимать? подключил принтер, скачал, посмтрел, порадовался что в скором будущем не надо будет платить aтoлу за драйвера, высказался.
7 Злопчинский
 
24.05.08
14:35
Завтра посмотрю, какой у нас принтер для этикеток...
8 big
 
24.05.08
16:40
(6) А разве дрова "паровозом" не идут с принтером. От того-же Атола?
А вообще конечно же тв молодец. Да еще и альтруист :))
9 Denjs
 
24.05.08
17:46
(8) Дрова паровозом если и идут, то только для "виндоус" подсистем печати.
А это на подавляющем числе промышленных принтеров - скорость печати около 0.5 см в секунду; помимо этого виндоус-драйвера не позволяют вам точно знать о состоянии принтера - кончается-ли там бумага, открыта-ли крышка. Нельзя так-же "позвонить кухонным звонком" или "выкинуть денежный ящик".

Специализированные системы печати позволяют достичь максимально аппаратно допустимых скоростей - до 15-20 см/сек, и дают все специфические возможности описанные выше.

Aтoл драйвера "паровозом" не идут. Если вы купили принтер у них - то "локальная" версия дается вам за $3.5 доллара; отдельно - около $100.00.
"Сетевая" версия для печати с нескольких станций на один принтер стоит около $300.00.
Считайте сами что идет паровозом, какого качества и каких возможностей.

Далее - "Aтoл драйвера принтеров чеков" дают реализуют только "линейный режим" печати. OTPD дает возможность использовать "страничный режим" - с произвольным позиционированием элементов. т.е. я могу разместить слева картинку, а справа - напечатать произвольный текст. В атол-драйверах такое не возможно.

Далее - "Aтoл драйвера принтеров чеков" иной интерфейс компоненты. отличия - см в (3)

Далее - все драйвера существующие на сегодняшний день - заточены только под одну ОС. OTPD-же работает как под виндоус, так и под линукс.

================================================================
(8) ЗЫ: и поверьте мне - я не альтруист. Если вы не видите путей получения выгоды - это не означает что их нет ;)
10 Denjs
 
24.05.08
17:51
но в любом случае, спасибо за отклик. )
11 big
 
24.05.08
17:56
(9) При всей своей любви возиться с железками к сожалению с принтерами чеков сталкивался только эпизодически, на уровне "интерфейсного шнура" :))  С удовольствием бы испытал сабж, но... звиняйте :))
12 Мохнатое рыло
 
25.05.08
09:31
(9) Мало сделать классный продукт, ещё надо его хорошо продать ;)
13 Al113
 
25.05.08
13:29
А зебра будет работать?
14 Злопчинский
 
25.05.08
13:40
я у себя обязательно попробую...
15 b_ru
 
25.05.08
14:31
респект за работу. Лично меня промышленные принтера на сегодняшний день не интересуют, но тенденция обозначена очень приятная :)
16 Злопчинский
 
25.05.08
14:56
Вопрос автору: поясните как работать в рамках вашей системы с печатью штрихкодов (на уровне идеи)...?
17 Denjs
 
25.05.08
17:44
(13) Зебра пока не поддерживается - они пограммируются системой команд ZPL / ZPLII , а с этим я пока не разбирался т.к. просто нету принтера в наличии.
Если предоставите доступ к оборудованию, или ещё лучше агрегат на месяц - будет всем Зебра и всё с ней совместимое.
Поддерживать принтеры наклеек технически ничто не мешает.

Надо подумать над графическими примитивами - как их отражать в pHTML, (ZPL II поддерживает линии, треугольники, прямоугольники, и т.п. - кажется даже "заливку" ). но расширение тегов pHTML - это проблема решаемая. Главное - что бы появилась железка которую можно мучать и рулона 3 расходников )))

(16) в общем случае примерно так: http://itland.ru/forum//index.php?&act=attach&type=post&id=1441

только в текущей версии системы у тегов немного другие опции, и тег <body> пока не реализован.
но идея осталась не изменной : вы составляете pHTML задание и отдаете его компоненте.

например :
============================================
<phtml>
Пример штрихкода.<br>
<barcode width=3 height=60
type=ean13 data=496595707379
chars=yes>
<br cut>
</phtml>
============================================
распечатает строку, под ней - штрихкод, после этого сделает отрез ленты.

Пример со страничным режимом
(на ESC/POS принтерах отпечатается частично)
============================================
<phtml>
<page height=450 width=500>

<div pos=100x50 size=350x200>
<barcode width=3 height=60
type=ean13 data=496595707379
chars=yes>
</div>

<div pos=10x50 size=100x200>
Справа вы видите штрихкод --\>
</div>

</page>
<br cut>
</phtml>
============================================
должно распечатать слева с переносом что-то типа:
"
Справа
вы вид
ите шт
рихкод
-->
"
а левее от этого - штрих код.
но, к сожалению, на esc/pos принтеры не поддерживают печать ШК в страничном режиме.
(я думал над эмуляцией, но пока не нашел достойной либы для отрисовки EAN13
в картинку на С/С++. (а то что нашел - пока не разобрался "как прикрутить")
потому - пока ШК в страничном режиме на чековых принтерах не будет.)
18 Злопчинский
 
26.05.08
01:26
(17) пока особо не понял, бум смотреть...
на неделе попробую у себя.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан