Mopria e DNS-SD

Mopria e DNS-SD

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 exemploCUPS
  • 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

informação relacionada