С появлением Android 4.4 Kit Google теперь поддерживает некоторую встроенную функцию печати.
Это означает, что теперь многие принтеры поддерживают Mopria.
Как и Airprint на IOS, Mopria - это не что иное, как многоадресный DNS для обнаружения принтера и IPP 2.0 для фактической печати. Конечно, MDNS будет работать только тогда, когда телефон или планшет находится в той же подсети, что и принтер.
Однако в Airprint мы можем создавать записи DNS-SD, которые указывают на принтеры, и поэтому устройства IOS могут перечислять устройства в разных подсетях.
Есть ли способ сделать это и с Mopria?
Анонсировать принтер для Android Моприа-Принт-Сервис через Bonjour используйте:
CUPS
(компьютерщики могут изучить Исходный код Java для mopria / wfds)
Подтверждение концепции:
использовать dns-sd
(Mac OS X) для рекламы службы удаленной печати (на rasperry pi / cups):
dns-sd -P "mopria" _ipp._tcp local 631 pi 192.168.2.118 \
rp=printers/colorlaser \
pdl=application/pdf \
ty=CUPS
Теперь мое Android-устройство может печатать PDF-файлы на моем CUPS-принтере, который подключен к моему Raspberry Pi по USB.
Выпуск 1:
Mopria-Discovery не может работать с двумя или более принтерами на одном хосте. В терминах «аппаратных принтеров» разумно предположить одну «очередь» на IP / хост. Что касается диспетчеров печати, таких как CUPS, вы столкнетесь с серьезными проблемами.
Mac OS X: только один общий принтер может быть обнаружен и использован службой Mopria-Print-Service
Выпуск 2:
По какой-то причине я не могу использовать avahi, чтобы сделать cups-ipp-service видимой для Android Mopria-Print-Service.
Это должно, но делает не работа для меня:
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name>mopria</name>
<service>
<type>_ipp._tcp</type>
<port>631</port>
<txt-record>txtvers=1</txt-record>
<txt-record>qtotal=1</txt-record>
<txt-record>rp=printers/colorlaser</txt-record>
<txt-record>pdl=application/pdf</txt-record>
<txt-record>ty=CUPS</txt-record>
</service>
</service-group>
Выпуск 3:
Mopria сбивается с толку, когда ответчиков mDNS слишком много. Для тестов Avahi вам следует отключить рекламу Bonjour CUPS.
Файл: /etc/cupsd.conf
Browsing Off
#BrowseOrder allow,deny
#BrowseAllow all
#BrowseLocalProtocols CUPS dnssd