конвертировать байты порта принтера inpout32 - PullRequest
0 голосов
/ 22 сентября 2010

У меня заканчиваются идеи.

Я использую C, кстати, через inpout32.dll.

У меня есть эти "байты" (например, 0000,00CC), которые читаютсяиз портов данных принтера D0-7 или D1-8.

Мне нужно отфильтровать читаемые человеком символы, когда выполняется задание на печать.

Это все еще очень примитивно, но я 'у нас есть функция прослушивателя, перехватывающая эти данные с использованием inp32.

В принципе, если я сделаю печать в блокноте, например «Hello World», это будет извлечено из байта, считываемого функцией inp32.* прослушиватель порта принтера находится в отдельном приложении.


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

В настоящее время это в основном PoC.

но сейчас я использую для тестирования Canon BJC-1000SP, он довольно старый, но это единственный принтер с параллельным портом, который у нас есть в офисе.остальные типы USB.

В настоящее время я использую это на Windows.

На самом деле мы будем слушать термопринтеры.


Так что теперь я пытаюсь использовать универсальный драйвер, который позволяет печатать текстовый файл.

Как извлечь из него текст через порт?


Если кто-нибудь может датьмне идея, функция / конвертер или где искать, это было бы здорово.

1 Ответ

0 голосов
/ 22 сентября 2010

Если все, что вы читаете, уже читаемый человеком текст, просто сохраните его.

Если нет, вам нужно подумать об используемой кодировке .Если это обычный старый ASCII, вы, вероятно, можете просто позвонить <a href="http://linux.die.net/man/3/isprint" rel="nofollow noreferrer">isprint()</a>, чтобы определить, является ли байт печатным символом.

Вышеизложенное, конечно, предполагает, что ваш принтер говорит в виде простого текста, что, вероятно, означает, что он долженбыть довольно старым и упрощенным принтером (как точечная матрица из ~ 20 лет назад или около того).

Если это современный лазерный или струйный принтер "Win-Printer", со всеми интеллектуальными возможностями макета страницысделано хост-компьютером в драйвере, вам, вероятно, не повезло.В этих случаях передаются инструкции по компоновке страницы, как правило, в формате, специфичном для принтера.

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

Обновление: Принтер Canon BJC-1000, который вы используете в настоящее время, является струйным.Весьма вероятно, что хост-компьютер отправляет данные построчно (как в чернильных линиях, а не в текстовых строках) данных для управления различными чернильными соплами.Я не думаю, что он отправляет простой текст на принтер.Вы можете исследовать, прочитав код драйвера с открытым исходным кодом.Для Linux рекомендуемый драйвер называется gutenprint .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...