
Com o Advent of Android 4.4 Kit, o Google agora oferece suporte nativo a alguma forma de funcionalidade de impressão integrada.
Isto significa que muitas impressoras agora suportam Mopria.
Assim como o Airprint no IOS, o Mopria nada mais é do que DNS multicast para detectar a impressora e IPP 2.0 para realmente imprimir. Obviamente, o MDNS só funcionará quando o telefone ou tablet estiver na mesma sub-rede da impressora.
No entanto, no Airprint podemos criar registros DNS-SD que apontam para as impressoras e, portanto, fazer com que os dispositivos IOS listem dispositivos em diferentes sub-redes.
Existe uma maneira de fazer isso com Mopria também?
Responder1
Para anunciar uma impressora para AndroidMopria-Serviço de impressãoatravés do uso do Bonjour:
- bonjour-service-type: _ipp._tcp
- txt-record pdl: um ou mais desses pdls
- imagem/pwg-raster
- aplicação/PCLm
- aplicação/pdf
- txt-record ty: deve existir, por exemplo
CUPS
- txt-record rp: o caminho IPP-URI apropriado (cups-printer-name)
(os geeks do código podem investigarcódigo-fonte java mopria/wfds)
Prova de conceito:
use dns-sd
(Mac OS X) para anunciar um serviço de impressão remota (em rasperry pi/cups):
dns-sd -P "mopria" _ipp._tcp local 631 pi 192.168.2.118 \
rp=printers/colorlaser \
pdl=application/pdf \
ty=CUPS
Meu dispositivo Android agora pode imprimir PDF na minha impressora CUPS, que está conectada por USB ao meu raspberry pi.
Problema 1:
O Mopria-Discovery não consegue lidar com duas ou mais impressoras por host. Em termos de "impressoras de hardware" é razoável assumir uma "fila" por IP/host. Em termos de spoolers de impressão como o CUPS, você enfrentará sérios problemas.
Mac OS X: apenasumimpressora compartilhada pode ser descoberta e usada pelo Mopria-Print-Service
Edição 2:
Por alguma razão, não consigo usar o avahi para tornar o cups-ipp-service visível para o Mopria-Print-Service do Android.
Isso deveria, mas faznãotrabalhe para mim:
<?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>
Edição 3:
Mopria fica confuso quando há muitos respondedores mDNS. Para testes Avahi, você deve desativar a publicidade bonjour do CUPS.
Arquivo: /etc/cupsd.conf
Browsing Off
#BrowseOrder allow,deny
#BrowseAllow all
#BrowseLocalProtocols CUPS dnssd