bmax писал(а): ↑03.12.2010 11:11
Все это прекрасно и замечательно. Сейчас работаю над принтерами AURA PP6800 в Ubuntu из 1С.
addin_libtelnet конечно работает намного лучше и стабильней чем старый
addin_libotpd.
Но распечатать чек так и не получилось.
1) Беда с кодировкой (вместо русских букв жирные полосы, а то и вовсе пусто, но каретка двигается)
2) Так и не понял как с новой компонентой чек формировать. В примере обработки все демо только POS команд.
Формирование чека средствами pHTML ничего не дало. На печать выходит абра-кадабра.
Может я и ошибаюсь, но считаю что прошлое формирование печати средствами pHTML и последующей отправки сформированной строки было намного удобней.
В новой разработке прочитав все мануалы ничего о pHTMLне нашел.
Вы совершенно правы практически во всем, но сейчас вы видите промежуточное состояние, в котором я, увы, "застрял" по причине отсутствия оборудования.
addin_libotpd - это только клиент в котором и не должно быть функциональности свяpанной с posHTML.
давайте я расскажу что зачем и где, и в какой фазе сейчас проект.
старая addin_libotpd - это ВК 1С которая ставила задачей загрузку библиотек otpd в пространство(?) внешней компоненты и непосредственное их использование. Вариант на практике оказался не сильно стабильным. ВК на дельфях, OTPD - на с++, скрестить их красиво и стабильно мне так и не удалось....
Было решено разнести все эти компоненты в разные части. Клиент и Сервер. Клиент передает на сервер задание в виде текста с posHTML, а уже сервер разбирает это и управляет принтером.
Помимо повышения стабильности, это даст нам сетевую печать.
addin_libtelnet - это клиентская часть. (кстати входит формально в QDroid) В ней нет функций разбора posHTML. Эта компонента дает инструменты для удобной работы с командами самого принтера (esc/pos) (для самостоятельной работы с принтером на низком уровне) и функции передачи данных на tcp/ip-узел(сервер) (при работе с сервером и прочими сетевыми сервисами). Там же предоставляются функции работы с дочерними программами через stdin|stdout. Это например нужно если вы хотите запустить "частную" копию сервера (печать в терминальном режиме на ком-порт терминального клиента). Другой вариент - получить дешевый вариант sip-телефонии (вы запускаете виндоус сборку linPhone как дочернюю программу и получаете функции телефонии из 1С. демки есть, могу предоставить, в скором времени опубликую) (
для сравнения - как я помню, цены на компоненты 1С для SIP-телефонии стоят от 500 у.е.)
К слову - перекодировка русского там тоже кстати есть, но вам надо дать команду принтеру использовать заданную кодовую страницу (в примерах оно есть).
в QDroid вам предлагается 2 сервера с которыми вы можете работать. Первый - это Tcp2Com (или Com2Tcp) (перенаправление ком-порта в tcp, с возмодностью удаленной настройки параметров порта) и, собственно, OTPD-server ( с которым вы уже работаете с помощью posHTML (делается это через компоненту qdlib_otpdnode для QDroid)).
по факту, для "промышленной работы" я вам советовал-бы использовать libtelnet работающую напрямую с ethernet-принтером или через com2tcp (последний из otpd или любой другой на ваше усмотрение).
otpd-сервер не могу рекомедовать для промышленной эксплуатации по причинам его не высокой стабильности.
Для формирования чека "на низком уровне" (с addin_libtelnet ) вам нужно использовать команды принтера - esc/pos
смотрите примеры в
http://prdownload.berlios.de/qdroid/Com2Tc....readme.rus.pdf - стр 7. Там же есть и то, как переводить принтер в режим печати русских букв (если он у вас русифицирован. Возможно на вашей модели принтера надо будет указать другой код кодовой страницы символов).
Описания esc|pos можно найти в сети - например
http://www.postechgroup.com/updata/support.../FAQ_ESCPOS.pdf ,
http://www.posprint.ru/pdf/escpos.pdf . Хорошие описания у Epson но их трудно найти.
Для большинства задач этих функций хватает.
Прошу прощения за то, что не могу пока рекомендовать otpd-сервер к промышленному использованию. Используйте addin_libtelnet
Могу выслать вам последние сборки системы. Сейчас я готовлю релиз QDroid но опубликую его минимум недели через 2. Пришлите в личку подробности вашей задачи, что собираетесь печатать и т.п. - я сделаю для вас бинарную сборку новых версий.