Реализация сервера IPP или JetDirect

Я ищу возможность отправлять векторные данные в свое приложение без необходимости использования внешних файлов со всеми их проблемами. Итак, моя идея заключалась в том, чтобы реализовать сервер печати IPP или JetDirect в моем приложении, чтобы получать простые (почтовый сценарий?) Данные от отправляющего приложения, которому затем нужно только распечатать данные для экспорта.

К сожалению, я не смог сделать несколько первых шагов. Чтобы увидеть, что происходит, я создал сокет TCP-сервера в своем приложении, которое прослушивает порт 631 (и 9100 в качестве альтернативы).

Затем я перешел к настройке драйвера принтера Windows, щелкнул «Добавить новый принтер», выбрал сетевой принтер TCP / IP и настроил IP 127.0.0.1 плюс соответствующий номер порта.

Теперь Windows начала поиск ... и ничего не нашла - и в моем серверном приложении я не видел подключения из Windows. При использовании Putty для подключения к моему небольшому серверу все работает плавно, я вижу входящее соединение.

Итак: что здесь может быть не так? Есть ли у Windows конкретное понимание того, что такое TCP / IP? Или почему я не вижу подключения Windows к этому серверу?

Или: есть ли (бесплатный) сервер печати C / C ++ IPP или JetDirect, который можно было бы использовать в моем проекте?

Спасибо!


person Elmi    schedule 30.03.2017    source источник


Ответы (1)


Он ничего не находит, потому что вы не объявили службу печати с помощью ws-discovery.

Самый простой способ - использовать протокол LPR - вам нужно настроить LPR в порту печати. Порт по умолчанию - 515.

Если вы хотите использовать IPP, вам необходимо включить его в функциях системы, а затем вы можете вручную ввести IP-адрес и порт при добавлении принтера. Или вы можете зарегистрировать _ipp._tcp с помощью Bonjour и добавить печать с помощью мастера принтера Bonjour.

person Radim Göth    schedule 29.05.2017