С некоторого времени на GitHub существует проект под названием ippsample
. Он медленно приближается к зрелой версии 1.0.
Вот первые два предложения данного самоописания в обязательном файле README:
"Этот код предоставляет примеры реализаций клиентов, принтеров и прокси-серверов IPP. Он в значительной степени основан на программном обеспечении CUPS с существенными изменениями в реализациях ippproxy и ippserver, чтобы сделать их более общими -целевой и настраиваемый. " (мой акцент)
Этот проект организован ISTO Printer Working Group (PWG)
, той же отраслевой организацией, которая разрабатывает и продвигает IPP в качестве общего стандарта.
Компоненты ippserver
, ipptool
, ippfind
, ippproxy
и ipptransform
примера проекта IPP вместе составляют стандарт 10 * *IPP Everywhere
реализация, охватывающая как клиентскую, так и серверную часть печати.
Код GitHub для примера проекта IPP поддерживается тем же Майком Свитом, который также разрабатывает CUPS - так что это реальная вещь.
Да, он хорошо компилируется и работает в Windows, и есть набор .vclxproj
и .sln
файлов , доступных для сделать процесс сборки в MS Visual Studio как можно более плавным.
Да, пример кода IPP работает и может печатать на сервере CUPS (или получать от него задания на печать), работающем в macOS или любой смеси Linux.
Нет, это еще не полноценный сервер CUPS для Windows, который может служить заменой для сервера печати Windows. У него нет ВСЕХ функций, которые могут потребоваться.
Но если вы хотите создать такого зверя:
- это место, где вы должны были бы сначала побродить;
- это то место, где вы, возможно, могли бы раскошелиться и начать добавлять функциональность, чтобы получить то, что вы хотите.
О, а вы знали, что Apple недавно изменила условия лицензии для CUPS и сделала ее более разрешительной, перейдя от GPL2 к лицензированию Apache 2.0?
Вы никогда не слышали о "IPP Everywhere" раньше? Это будущее печати без водителя.
Никогда не слышали о "печати без драйверов" ? Немного измененная (и урезанная) версия уже реализована как «Apple AirPrint» для устройств iPhone и iPad.
Текущая реализация стека печати на основе CUPS включает новые фрагменты кода в проекте cups-drivers
, который недавно был перемещен в GitHub. Этот новый код реализует функциональность IPP Everywhere.
Этот проект cups-filters
находится под управлением Отдела OpenPrinting Фонда Linux с тех пор, как Apple передала им эти части исходного кода CUPS, когда они стал более бесполезным для macOS, но все еще был важен для Linux.
Каковы основные идеи печати без драйверов?
Устройства должны автоматически объявлять о своем присутствии и типе обслуживания в локальной сети. Используйте стандартные протоколы IETF mDNS
и DNS-SD
(которые реализованы в macOS под именем "Bonjour" и в Linux как "Avahi" ), чтобы принять к сведению предлагаемые услуги.
Сообщите клиентам печати, что они могут использовать протокол IPP
для получения ответа на запрос при выполнении запроса get-printer-attributes
. Этот запрос сообщит им, какой набор параметров печати поддерживают устройства. Клиенты печати могут затем показать точно настроенный диалог печати, чтобы показать пользователю печати выбор вариантов. Клиенту печати также сообщат, какие форматы отправки заданий поддерживает каждое устройство. Это ДОЛЖЕН быть PDF или простой растровый формат с именем "PWG-Raster" .
Итак ... где вам нужен конкретный "драйвер принтера" в такой среде? Все и каждый может создавать PDF документы в наше время. Проверьте! Нет необходимости в преобразовании конкретного устройства в любой другой язык печати.
Существуют ли принтеры, которые уже поддерживают IPP везде? Ах, да, посмотрите здесь - все они, как говорят, полностью соответствуют стандарту: