
Mit der Einführung des Android 4.4 Kit unterstützt Google nun nativ eine Art integrierte Druckfunktion.
Das bedeutet, dass viele Drucker jetzt Mopria unterstützen.
Genau wie Airprint unter iOS ist Mopria nichts anderes als Multicast-DNS zum Erkennen des Druckers und IPP 2.0 zum eigentlichen Drucken. Natürlich funktioniert MDNS nur, wenn sich das Telefon oder Tablet im selben Subnetz wie der Drucker befindet.
Auf Airprint können wir jedoch DNS-SD-Einträge erstellen, die auf die Drucker verweisen, und so iOS-Geräte Geräte aus verschiedenen Subnetzen auflisten lassen.
Gibt es dafür auch mit Mopria eine Möglichkeit?
Antwort1
Einen Drucker für Android ankündigenMopria-Druckserviceüber Bonjour verwenden:
- Bonjour-Diensttyp: _ipp._tcp
- txt-record pdl: einer oder mehrere dieser PDLs
- image/pwg-raster
- Anwendung/PCLm
- application/pdf
- txt-record ty: muss vorhanden sein, zB
CUPS
- txt-record rp: der entsprechende IPP-URI-Pfad (CUPS-Druckername)
(Codefreaks können sich das mal ansehenMopria/WFDs Java-Quellcode)
Konzeptioneller Beweiß:
verwenden dns-sd
(Mac OS X), um einen Remote-Druckdienst anzukündigen (auf Raspberry Pi/CUPs):
dns-sd -P "mopria" _ipp._tcp local 631 pi 192.168.2.118 \
rp=printers/colorlaser \
pdl=application/pdf \
ty=CUPS
Mein Android-Gerät kann jetzt PDFs auf meinem CUPS-Drucker drucken, der per USB mit meinem Raspberry Pi verbunden ist.
Fehler 1:
Mopria-Discovery kann nicht zwei oder mehr Drucker pro Host verarbeiten. Bei „Hardwaredruckern“ ist es sinnvoll, von einer „Warteschlange“ pro IP/Host auszugehen. Bei Druckspoolern wie CUPS treten jedoch ernsthafte Probleme auf.
Mac OS X: nureinsfreigegebene Drucker können vom Mopria-Print-Service erkannt und verwendet werden
Problem 2:
Aus irgendeinem Grund kann ich Avahi nicht verwenden, um den Cups-IPP-Dienst für den Mopria-Print-Dienst von Android sichtbar zu machen.
Dies sollte, tut es abernichtarbeite für mich:
<?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>
Problem 3:
Mopria gerät durcheinander, wenn zu viele mDNS-Responder vorhanden sind. Für Avahi-Tests sollten Sie die Bonjour-Werbung von CUPS deaktivieren.
Datei: /etc/cupsd.conf
Browsing Off
#BrowseOrder allow,deny
#BrowseAllow all
#BrowseLocalProtocols CUPS dnssd