Comments 16
В атоловских драйверах же вроде есть нативные методы печати текстовой строки и даже формирования qr и штрих-кода.
Так мне же не просто строку печатать! А фиг знает что. Может строку, может картинку, может штрих код. При этом каким угодно шрифтом, используя отступы, межсимвольные и межстрочные интервалы. А штрих код тоже может быть разный, и с разным масштабом. Поэтому вся эта кухня в моем приложении, а наружу уже готовый документ идет.
Мне кажется логичнее временные файлы класть в папку temp - через GetTempPathA
какой-нибудь
Интересно, а есть какой-то официальный софт для такого? Или только вот так самим писать. Вы прогу не распространяете случайно, может продаете? Знакомый недавно как раз чем-то подобным интересовался. Чтобы в баре всякие приколюхи печатать можно было.
Т.к. я изначально переделывал старые кассы (а сначала просто выдирал термопринтеры из них) и подключал как придется (через LPT, потом через COM порты), то конечно ничего готового у меня не было. А если бы и нашел - это было бы не универсальное решение. Поэтому начал писать сам под себя. Если вас что-то заинтересовало, пишите в личку, тут рекламировать не буду.
Какого плана приколюхи и на каком оборудовании?
Я занимался около 15 лет автоматизацией и обслуживанием фискальных регистраторов (тех, о которых вы пишете), в основном на оборудовании Штрих-М, но и Атолы были, и десяток менее известных производителей - Меркурий, Счетмаш, Искра, СП.
При переходе на современные фискальные накопители (~2016гг) для старых аппаратов нужна была серьезная доработка - установка нового процессорного модуля (для штриха) или замена материнской платы (для атола), но чаще покупали новый ФР. Поэтому довольно много старых аппаратов были списаны, при этом ресурс печати у них еще довольно большой, их можно найти на авито за 500-1500 руб.
Но для печати из windows они подходят довольно плохо - печать графики будет медленной (из-за особенностей протокола обмена + невысоких скоростей). Однако они неплохо и довольно быстро печатают тексты и произвольную заранее заготовленную/загруженную графику через штатный драйвер (старый).
Теоретически, железо там несложное, и вроде даже где-то были попытки написать отдельную прошивку для таких устройств для печати windows, но нет серьезного стимула - устройств не так много.
К тому же, обычные хорошие термопринтеры(новые) стоят значительно дешевле любого фискального регистратора.
Кстати, чем мне нравятся эти термопринтеры - так это неприхотливостью в работе и сравнительно высокой надежностью. Они боятся воды, чистки ножницами, механического износа и статики (когда отрывают чек, искра может повредить одну из линий печати).
Так я для штрих-ФР/ФРК, штрих-М ФРК и прочих писал прошивку, которая превращала аппарат в _Настоящий_ термопринтер. Было переделано несколько десятков аппаратов. Они печатали из ворда, ексела, пробную страницу. Но потом это все заглохло, т.к. появилось множество всяких xprinter ов из китая, народ их покупал за копейки, потом мучался из за хренового качества печати. А так скорость печати была не очень высокая, т.к. обмен шел через СОМ порт, но качество было идеальным.
А почему скорость печати невысокая? Если правильно помню то у широких аппаратов ширина строки 512 бит (80мм), а высота строки примерно 0.353мм, при скорости печати 150мм/сек - для печати напрямую нужен интерфейс со скоростью около 27Кбайт/сек (у RS232 14Кб/сек), с учетом простейшего RLE - должно хватать вполне.
Да, вообще здорово, что решение есть (вы его продаете?), но так как аппаратов все меньше, востребованность тоже падает.
Я люблю находить старым вещам хорошее применение, но такие проекты очень специфичны - как по времени, так и по деталям внедрения. Как правило, клиента интересует только цена и сервис, это значит, распространять нужно среди интеграторов, а они часто не заинтересованы в низких ценах и простых решениях.
А у вас какая именно потребность на них печатать?
Для печати я использовал скорость порта 19200. Никакой компрессии не использовал. Проблема была в том, что драйвер я взял готовый. От какого-то там промышленного термопринтера. Взял этот, т.к. смог расколоть его протокол обмена. Просто что-то печатал и снимал hex дамп. Потом пытался понять как там передаются данные и команды. Затем уже в моей прошивке подстраивался под этот формат, добиваясь чтобы отправленные задания на печать корректно печатал мой "как бы принтер". Полностью конечно я формат не разгадал, но тех команд что я засек, вполне хватало для печати из офисных приложений. Большой проблемой были тайминги, чтобы не переполнялся буфер в штрихе. Там есть микросхема статической памяти, ее и использовал. Пробовал разные скорости обмена, надо было добиться чтобы нормально комп передавал задание, чтобы не переполнялся буфер и чтобы голова все успела напечатать. В итоге остановился на 19200. Некоторые фискальники турбировал. Так в штрихе фрк менял кварц на более быстрый.
Недавно возник вопрос печати слипа на этих машинках и он успешно решился аж из vbscript. По документации, если просто печатать некий текст, изгаляться особо не надо- команда открыть нефискальный документ, что-то печатать в win1251 теми же командами драйвера построчно, команда закрыть нефискальный документ. Отрезка по желанию. Все работает как часы, прога меньше полсотни строк. Нет никакой возни со скоростями там и прочим- если настроил ККМ в драйвере, то все отлично. Я распечатывал последний слип с эквайринга сбера, разве что добавить пришлось cp866->win1251, а так любой текстовик запросто.
Переделка ККМ Атол в термопринтер