hpのプリンタしか使えないと思っていたAirPrintですが、WindowsマシンやMacから共有することによって、実は他のメーカーの機種でも可能であることが解明されてきました。
しかしながら、suzusukeみたいにLinuxサーバーが自宅に立ててある状態で、わざわざWindowsマシンを立ち上げるなんて、自宅鯖の意味がありません。
というわけで、CUPS、Avahi-daemonを使ってこれを可能にしてしまおうというのが、今回のエントリーです。
別に私が可能にしたわけではありませんが。先駆者に感謝。
via : Printing from iPad (AirPrint) via CUPS
2011年1月3日追記:cupsの設定変更を書くのを忘れていましたので追記しました。
前提
- CUPSを用いて印刷が可能であること。
- Avahi-daemon導入済み。
- 私が使っているのはFedoraです。
suzusukeはFedora使いですので、yum install cups でした。
また、GhostScriptも使いますので、yum install ghostscript してくださいね。
私の使っているプリンターはBrotherです。CUPS用の設定ファイルが公式に公開されているので何も面倒なことありませんでした。
設定ファイルを書こう
/etc/avahi/services にファイルを作ります。たとえば、
/etc/avahi/services/printer.service って感じです。.serviceが最後につけばいいです。
$ vi /etc/avahi/services/printer.service
面倒な説明は無しで設定ファイルどーん。
<?xml version="1.0" standalone='no'?> <!DOCTYPE service-group SYSTEM "avahi-service.dtd"> <service-group> <name>Brother_DCP-750CN</name> <service> <type>_ipp._tcp</type> <subtype>_universal._sub._ipp._tcp</subtype> <port>631</port> <txt-record>txtvers=1</txt-record> <txt-record>qtotal=1</txt-record> <txt-record>rp=printers/Brother_DCP-750CN</txt-record> <txt-record>ty=Brother_DCP-750CN</txt-record> <txt-record>note=Home</txt-record> <txt-record>product=(GPL Ghostscript)</txt-record> <txt-record>printer-state=3</txt-record> <txt-record>printer-type=0x3056</txt-record> <txt-record>Transparent=T</txt-record> <txt-record>Binary=T</txt-record> <txt-record>Duplex=T</txt-record> <txt-record>Copies=T</txt-record> <txt-record>pdl=application/pdf,application/postscript,application/vnd.cups-raster,application/octet-stream,image/png</txt-record> <txt-record>URF=W8,SRGB24,CP1,RS600</txt-record> </service> </service-group>
説明いりませんよね?名前だけいじればOKです。
そして、次はcupsd.confに次の行を追記しておきます。
ServerAlias *
そして次のコマンド。
$ service avahi-daemon restart
$ service cups restart
以上で完了です。(serviceは他のディストリで使えるかどうか分かりません。)
こんな感じで画面が出てきて、
印刷完了!
文字化けもないし、touchで表示したまんまです。フォームがデカいデカいw
こんなことも可能です(AirPrint→PDF→Evernote)
cups-pdfを用いると、AirPrintした結果がPDF出力されます。
私は、cups-pdf.confに以下の行を設定しています。(user-nameには私のLinuxユーザー名を入れてます)
Out /home/user-name/samba/print AnonUMask 0000 UserUMask 0000
sambaで共有しているディレクトリにはき出させ、そのディレクトリをWindowsのEvernoteクライアントに監視させれば勝手にEvernoteに入っていきます。
使い方無限大、皆様もCUPSでAirPrintを楽しんでください!
Blog更新: AirPrintをCUPSを使ったLinuxサーバーで実現してみた。 http://bit.ly/fltZrW