Mendaharin Ответов: 2

Использование Esc/Pos для печати


Сейчас я пишу программу. Это кухонный видеоэкран.

Программное обеспечение, с которым я имею дело, имеет возможность либо печатать через драйвер принтера windows, либо напрямую отправлять команды escpos.

Использование драйвера печати windows, хотя и намного проще, не так гибко, как мне нужно, чтобы иметь возможность шифровать информацию, чтобы придать различные свойства шрифта определенным разделам задания печати. (Например, мне нужны продукты для печати большими буквами, а продукты, прикрепленные к ним, - маленькими и красными)

Итак, я пытаюсь понять, как я могу включить Escpos в свое программное обеспечение
(Также избавляет меня от загрузки драйверов печати, что лучше, так как он использует меньше ресурсов)

Escpos-это язык печати, разработанный компанией Epson, который позволяет задавать параметры строки, которая будет напечатана, включая размер, цвет.

Может быть, кто-нибудь подскажет мне, что это следующая большая часть моего проекта, и я не знаю, с чего начать.

Я предполагаю, что мне нужно написать класс, который имеет все команды escpos, и когда строка считывается из входящего порта, она будет закодирована в соответствии с созданным мной классом.
Моя голова говорит, что мне нужно написать целую кучу утверждений If, но я уверен, что есть гораздо более простой способ сделать это.

[no name]

Начните с чтения документации, http://content.epson.de/fileadmin/content/files/RSD/downloads/escpos.pdf

Mendaharin

У меня есть вся эта информация. У меня также есть соответствующий лист команд escpos. Я просто не уверен, как получить строку, а затем перекрестно ссылаться на эту строку с кодировщиком. Вот в чем я немного запутался.

Sergey Alexandrovich Kryukov

Почему? почему?! Это даст вам нон-портативный принтер Epson-ориентированного кода. Универсальная печать достаточно проста, почему бы не использовать ее?
—СА

Mendaharin

Многие POS-системы используют escpos, поэтому я хочу иметь возможность использовать программу с несколькими POS-системами
Я вижу в нашем программном обеспечении, что мы можем сказать драйверу windows, чтобы он напечатал раздел красным цветом, но я не уверен, как написать мое программное обеспечение, поэтому, когда он получает красную команду, он затем печатает строку красным цветом в моем текстовом поле.

Sergey Alexandrovich Kryukov

Я не убежден (многие системы используют его, так почему же вы должны это делать? скорость? что-нибудь еще?), но я понимаю, что вы делаете.
—СА

SoMad

Пожалуйста, проверьте Решение 1 и комментарии, сделанные Сергеем и мной. Если ваше намерение состоит в том, чтобы сделать то, что я понял из вашего вопроса, я считаю, что могу помочь вам начать работу, поскольку я написал аналогичные Парсеры/фильтры, которые обрабатывают ESC/POS, STAR и другие (включая различные форматы отображения полюсов) форматы.

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

Сорен Мадсен

2 Ответов

Рейтинг:
16

Sergey Alexandrovich Kryukov

Вместо того чтобы использовать этот язык Epson напрямую, почему бы не использовать программное обеспечение Microsoft POS, уже написанное для .NET? Пожалуйста, смотрите:
http://msdn.microsoft.com/en-us/library/dd125967%28v=winembedded.10%29.aspx[^].

Смотреть также:
http://msdn.microsoft.com/en-us/library/ms828083%28v=winembedded.10%29.aspx[^],
http://msdn.microsoft.com/en-us/library/dd143192%28v=winembedded.10%29.aspx[^].

—СА


SoMad

Насколько я понимаю, он хочет "пойти другим путем". Я верю, что он хочет сделать это:
- Используйте стороннее программное обеспечение, которое печатает квитанции.
- Получите данные квитанции в своем заявлении.
- Анализируйте данные и выводите их на монитор.

Сорен Мадсен

Sergey Alexandrovich Kryukov

Простите, а почему вы думаете, что ОП этого хочет?

Я не понимаю, почему "другой путь "и"3-я сторона". Почему не Microsoft? Я бы ни на что не ответил без понимания какой-то разумной мотивации своего требования.

—СА

SoMad

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

Поэтому я думаю, что он хочет получить данные, как это делает принтер, удалить (или в какой-то степени интерпретировать) управляющие коды Epson ESC/POS из данных, чтобы представить данные.

Сорен Мадсен

Sergey Alexandrovich Kryukov

Это я мог видеть, и на это я ссылался, говоря "вместо того, чтобы использовать этот язык Epson напрямую". Это может быть какая-то сторонняя библиотека, но, во-первых, я понимал ее как возможный код, написанный OP. Я не вижу в этом смысла. Возможно, ОП просто не знал о библиотеке MS по этой теме.
—СА

Mendaharin

Ура Сергею и Сомаду - я посмотрю на этот класс. Ваша правота я понятия об этом не имел :)
Сомад вы правы я хочу получать данные точно так же как это делает принтер :)
Мне нужно много читать :)

Sergey Alexandrovich Kryukov

Отличный. Это означает: я почти уверен, что это поможет вам.
Пожалуйста, не забудьте принять ответ формально (зеленая кнопка "принять").
—СА

SoMad

Пожалуйста, дайте нам знать, если вы добьетесь чего-нибудь с этим. Лично я не думаю, что вы можете сделать эту работу, так как этот класс предназначен для отправка данные, а не получение.
Я очень надеюсь, что вы сможете использовать эту или другие части библиотеки - ее не существовало, когда я начинал разработку нашего решения, и я не присматривался к ней внимательно, так как она используется для разработки POS-программного обеспечения, в то время как мы взаимодействовали бы с POS-решениями, обрабатывая печатные данные (и другими способами).

Сорен Мадсен

Mendaharin

Сомад , ты прав. Я пока не могу использовать этот pos-класс (он поможет, когда я захочу напечатать на Терме, что будет еще одной функцией, но позже в жизни программ)

Мне кажется, я немного забежал вперед и запутал дело в своей голове....
У меня есть наше программное обеспечение pos, чтобы выплюнуть слово xred/xblk, и в данный момент я пытаюсь понять, как использовать эти "команды" для установки цвета шрифта.

Я предполагаю, что мне нужно прочитать его строчку за строчкой, а затем добавить его в текстовое поле, которое я скоро просмотрю. Работы снова начинают набирать обороты...

Поскольку я новичок в этом деле, у меня все еще есть небольшие проблемы с различными способами работы со струнами. Но это отличный способ научиться этому... Струны-это заноза в заднице...

SoMad

На самом деле я не получил уведомления о вашем комментарии, потому что вы случайно разместили его как комментарий к решению Сергея, а не к моему комментарию. Это простая ошибка, которую совершают многие люди (в том числе и я иногда :) ). Я просто хотел, чтобы вы знали, почему я не ответил на ваш комментарий. О, а потом еще это была моя автомобильная авария[^].

В любом случае, дай мне знать, если тебе понадобится помощь, и я посмотрю, что смогу сделать. Мой код на самом деле написан на C++, и в последний раз, когда я работал в VB, они еще не создавались VB.NET пока.
Тем не менее, должно быть возможно выяснить, как заставить вас двигаться. И вы правы,здесь будет много работы со строками.

Сорен Мадсен

Рейтинг:
1

Abramson uri

Привет,
Мне также нужно разобрать файлы ESC-POS и отобразить их на экране.
Не могли бы вы оставить свой код здесь, чтобы я мог им воспользоваться?
Я был бы вам очень признателен, спасибо!


[no name]

Как вы просите чужой код решения этого уже ответившего вопроса?

Mendaharin

Абрамсон - у меня было много проблем с этим, но программное обеспечение, с которым я работал, позволило мне написать свой собственный язык ESC-POS, я перевел hex в читаемую строку и проанализировал ее - то есть: я нашел шестнадцатеричное значение для строки, а затем моя программа искала эту строку и использовала логические значения, основанные на том, была ли эта строка найдена.

Это сработало для того, что мне было нужно.

С этим ты сам по себе. Существует множество документации по ESC-POS epson, но вам потребуется написать библиотеку, для которой у меня не было навыков на момент написания этого вопроса.