Работа с принтером чеков Posiflex PP 6000, 7000, 8000
В свое время я столкнулся с необходимость использовать данные модели принтеров для печати.
Рассмотрим для начала пути которые у нас есть для работы с этим оборудованием.
Если у вас типовая конфигурация например «1С Управление Торговлей 10.3» идем в раздел «Сервис -> Торговое оборудование -> Подключение и настройка»
И видим что разделом » Принтер чеков » там и не пахнет.
Очевидно что 1С предполагает работу с принтерами чеков как с обычными принтерами и специальных обработок не требуется.
Способ 1. Установить Windows драйвер
— найти и установить Windows драйвер (в итоге на принтере можно будет печатать с любого приложения будь то Word, Paint, Notepad или 1С)
— настроить макеты, печатные формы, чтобы влезало на ленту.
Плюсы:
— печать картинок без проблем ( не нужно задумываться как это сделать, сюда же штрих коды)
— работает с любой 1С 7.7, 8.1, 8.2, 8.3 и т.д.
— легок в установке и внедрении
Минусы:
— Тормозит виндовский драйвер, печать идет медленно (если не вру всегда в графическом режиме)
— ограниченные возможности принтера (не получится издавать звуки, фигурно нарезать ленту. там на самом деле очень богатый API у принтера)
Установка:
1) Если принтер подключен через USB эмулятор COM порта, установим вначале драйвер порта.
Для большинства «шнурков» (кабель USB->COM) что мне попадались подходил следующий драйвер » Prolific Driver PL2303 «, поддерживает все Windows системы (32 и 64 bit)
Supports the following Windows OS Family:
— Windows 2000 SP4
— Windows XP SP2 and above (32 & 64 bit)
— Windows Server 2003 (32 & 64 bit) — Windows Vista (32 & 64 bit)
— Windows 7 (32 & 64 bit)
— Windows Server 2008 / 2008 R2 (32 & 64 bit) .
USB 1.1/2.0/3.0 Host Controller
— Device using PL-2303H/HX/X version chips
— Device using Prolific next-gen version chips (Codename EA/TA/TB)
Выкладываю файл для скачки: PL2303_Prolific_DriverInstaller_v1.5.0.rar
2) После того как у нас появился COM-порт к которому подключен принтер чеков, самое время установить Windows драйвер, который будет взаимодействовать с этим портом. Мне в свое время попалось три файла.
— PP7000-PP7000II-PP7700 for Windows 9x.zip
— PP7000II-PP7700 Thermal Printer Driver for Windows 2000-NT-XPServer2003-VISTA.rar
— PP8000-Windows Vista x64-Windows XP x64-Windows Server 2003 x64.zip
Выкладываю файл для скачки: Posiflex_Windows_Drivers .rar
Способ 2. Установить родные драйвера POSIFLEX
Когда-то мне удалось скачать на официальном сайте родные драйвера. Не буду выкладывать дистрибутив, выложу готовые dll.
Родные дрова:
OPOSPOSPrinter.ocx — Файл драйвера необходимо зарегестрировать
flex.dll — Файл драйвера необходимо зарегестрировать
demo.exe — утилита для проверки драйвера, которая идет в комплекте с драйверами POSIFLEX
Для обращения из 1С нужно написать еще внешнюю компоненту, которая будет обращаться к этому драйверу и передавать ему ваши команды.
В свое время я накидал на Delphi:
PP7000.dll — Внешняя компонента для 1С, необходимо регестрировать Имя объекта: «Addin.PP7000»
PPDemo.exe — Утилита вызывающая окно настройки PP7000.DLL. Программа подобно 1С обращается к внешней компоненте PP7000.DLL. При запуске вызывает функццию ShowProperties в которой можно установить необходимые параметры оборудования и протестировать работу устройства.
PP7000.ert — Обработка для работы с внешней компонентой PP7000. Подключает принтер чеков, как фискальный регистратор. (1С 7.7.)
Плюсы:
— работает все быстро
— используется родной драйвер
— Отслеживает статус возврата принтера (то есть функции возвращают ответ, может быть ошибка какая приключилась)
Минусы:
— нужно регистрировать две родных библиотеки и еще одну внешнюю компоненту PP7000.dll
— Необходимо настраивать COM порт при помощи родных утилит или PPDemo.exe или ручками в реестре
— Принтеру присваивается имя например «PP Demo» и в реестре прописывается какой COM-порт и baud rate используется для него. Так работает родной драйвер, вы сообщаете ему имя, а он из реестра считывает уже параметры соответствующие параметры порта и скорости. Пользователям нужны права доступа к реестру.
Выложу сразу все в одном архиве: родные дрова, компонента 1С, мои исходники на delphi = » Способ2.rar «
Способ 3. Обращаться к принтеру через порт (ESC — последовательности)
Последний способ который мне больше всего нравится сочетает простоту установки и отличную скорость работы не жертвуя функционалом. Будем обращаться напрямую к порту, посылать специальные команды для выбора шрифта, отрезки чека, печати текста и.т.п.
Для начала можно проверить работу принтера самым простым способом: Введите в командной строке » copy con com1 » или » copy file.txt com1 «, где file.txt — содержит ваш текст. Вместо com1 — укажите ваш порт. Не помню нужно ли двоеточие после » com1: «, попробуйте. Если принтер фурычит значит можно начинать посылать на него команды.
Нашел пару документов описывающих команды:
— PP6000/PP7000/PP7000-II Детализация команд ( Cjmmand1.doc )
— Technical Documentation Printer Control Codes for SAMSUNG SRP-270 in Epson Emulation mode compared with Posiflex PP-5600 ( Printer Control Codes for SAMSUNG SRP-270 and PP5600.pdf )
Насколько мне известно 1С 8.х не умеет напрямую работать с RS-232 портом, поэтому поищем любую библиотеку/компоненту для работы с портом.
Я выбрал MSCOMM32.OCX:
— MSCOMM32.OCX — сама библиотека
— MSCOMM32_License.reg — файл лицензии (вообще-то библиотека платная вроде)
— regmscomm32.bat — сделал батничек для регистрации
— readme.txt — на всякий случай если вы забыли что делать 🙂
Выложу одном архиве: » MSCOMM32.rar »
Еще выкладываю расширенную документацию, там есть ESC-коды и многое другое. » Документация.rar «
Ну и самое главное код, выкладываю здесь, чтобы ничего не нужно было скачивать, если есть лишние $качайте все подряд 🙂
Все способы могут работать параллельно друг другу, по очереди обращаясь к принтеру из разных приложений.
На этом все, надеюсь статья была полезной или интересной 🙂