![](https://habrastorage.org/getpro/habr/upload_files/a18/05c/0eb/a1805c0eb303fe11d7eca77c2f089a95.png)
В ходе работы над своим драйвером печати мне пришлось написать эмулятор IPP принтера. Оформил его как бесплатное приложение в гугл плее. Анонс сервиса в mDNS IppVirtual._ipp._tcp.local. Добился автоматического его распознования стандартной службы печати андроида. Поднял http сервер на порту 10631. отдаю иконку принтера и 404 страницы. При обращении по rp = p/virеual реализовал команды IPP протокола: получить свойства принтера, печать документа и другие. Проще всего было реализовать поддержу PDL для PCLm (по сути тотже aplication/pdf), полученный файл просто передается встроенному просмотровщику. Для urf,pwg и SPL(QPDL) написал декодеры в битмап с последующей конвертацией в pdf.
Не получилось полностью реализовать драйверлес для macOS и windows :(
На маках находит, но ставиться только при ручном указание ppd, который можно сформировать запуском
/System/Library/Printers/Libraries/ipp2ppd урл_принтера
На виндовс устанавливается через мастер установки Bonjour. Драйвер приходится выбирать в ручную. Подходят стандартные от майкрософт (н-р универсальный IPP).
Эмулятор может быть полезен программистам, которые решили внедрить в свою программу прямую печать на IPP принтеры.
Приложение в данный момент опубликовано для открытого тестирования