AirPrintはBonjourを話すとは限らない

!=
先日AirPrint対応のプリンタをandroidから制御してみようというエントリを起こしたのだが、これは困難なのかもしれないと思いはじめている。

無知な私はAirPrintはBonjourに対応した印字機能を持つプリンタのことを指すのではないかと勝手に思い込んでいたのだが、そうではなく、AirPrintはあくまでApple独自の特定の機器のドライバを必要といないゼロ・コンフィグレーション技術を用いたプロトコルであり、Bonjourの基礎的な技術は使用していると思われるが、AirPrint対応のプリンタがBonjourを使って全て制御できるわけではないということぽい。

ネットの情報を総合するとAirPrintで解っていることは

    • AirPrintは印字制御にインタネット印刷プロトコル(IPP)を使用する
    • AirPrintはプリンタの探索にマルチキャストDNS (mDNS)を使用する
    • AirPrintサービスタイプとして"_ipp"のサブタイプである"_universal"を使用する
    • AirPrintプリンタの情報を取得するために追加のテキストレコード"URF"を必要とする

この辺位。

用途としては同じ「ゼロ・コンフィグレーション」であってもAirPrintはBonjourとは違い、コミュニティに対して詳細な仕様は公開されておらず※、androidからAirPrintプロトコルを操作するソフトウェアは公開されていない。

上記の情報を見る限りでは、Boujourを使ってプリンタをネットワークにサービスとして登録し、プリンタを使う側は同じくBonjourを使って探索、発見して、IPPプロトコルを使ってプリンタとお話すれば良いように思えるが、非公開である以上、推測でしかない。

※ 他の仕様と同様にAppleNDAを締結したベンダーにのみ公開されていると思われる。