Я никогда не занимался программно с тем, что вы спрашиваете, но у меня есть некоторый опыт, когда дело доходит до систем POS, которые могут вам помочь.
То, что вы делаете для печати и кассового ящика, сильно зависит от оборудования, с которым вы работаете. И есть широкий разнообразие оборудования там.
В каждой POS-системе, которую я видел, есть множество драйверов для каждого мыслимого принтера чеков и кассового ящика, поэтому, если вы не разрабатываете полноценную систему, просто сконцентрируйтесь на конкретном оборудовании, которым вы собираетесь быть работать с. Даже в этом случае старайтесь хорошо учитывать свой код, чтобы максимизировать преимущества шаблона стратегии. Если вы работаете с несколькими типами устройств, вы позже поблагодарите себя за такую реализацию.
Для печати существует 3 основных типа принтеров:
- Чековый принтер, который может печатать только текст (устаревший, но все еще рядом)
- Чековый принтер, способный печатать графику
- Стандартный принтер, печатающий полностраничные счета-фактуры 8,5 x 11 дюймов / кредитовые авизо (просто, - сказал Нуфф)
Я полагаю, что большинство, если не все, современные принтеры чеков попадают в категорию # 2, но вы можете столкнуться с устаревшей системой, используя принтер из категории # 1.
Для категории # 2 вы должны использовать стандартный интерфейс печати .NET. Единственной проблемой может быть отправка контрольного кода для активации режущего механизма (если имеется) в соответствующее время (а); или драйвер принтера может сделать это автоматически на основе длины бумаги, указанной в алгоритме печати. Опять же, я никогда не пробовал этого, но если у вас есть доступ к принтеру чеков, вы сможете быстро разобраться в этом.
Если вы имеете дело с единственным клиентом, у которого есть принтер в категории # 1, вы можете привести веские аргументы в пользу того, что купить новый принтер в категории # 2 будет дешевле, чем платить вам разработать тупиковый драйвер для печати на существующем оборудовании.
Что касается кассовых ящиков, я менее знаком, чем с принтерами, но я знаю два варианта в отношении связи и аппаратного обеспечения:
- Подключается через LPT-порт через к принтеру. (Кабельная цепь: компьютер -> принтер -> кассовый ящик)
- Подключается напрямую к компьютеру через порт COM / LPT или, возможно, через современный USB.
Первый тип работает, посылая управляющие коды в порт принтера (который, мы надеемся, принтер проигнорирует и не выплеснет весь рулон чековой бумаги), в то время как для второго вам понадобится выполнить коммуникацию через COM-порт. В любом случае управляющие коды зависят от аппаратного обеспечения. Большую часть времени они встречаются в руководстве пользователя, но иногда технический писатель чувствовал себя особенно злым в тот день, и вам придется копать в Интернете.