AirPrintをCUPSを使ったLinuxサーバーで実現してみた。

hpのプリンタしか使えないと思っていたAirPrintですが、WindowsマシンやMacから共有することによって、実は他のメーカーの機種でも可能であることが解明されてきました。

しかしながら、suzusukeみたいにLinuxサーバーが自宅に立ててある状態で、わざわざWindowsマシンを立ち上げるなんて、自宅鯖の意味がありません。

というわけで、CUPS、Avahi-daemonを使ってこれを可能にしてしまおうというのが、今回のエントリーです。

別に私が可能にしたわけではありませんが。先駆者に感謝。

via : Printing from iPad (AirPrint) via CUPS

2011年1月3日追記:cupsの設定変更を書くのを忘れていましたので追記しました。

前提

  • CUPSを用いて印刷が可能であること。
  • suzusukeはFedora使いですので、yum install cups でした。
    また、GhostScriptも使いますので、yum install ghostscript してくださいね。

  • Avahi-daemon導入済み。
  • 私が使っているのはFedoraです。

私の使っているプリンターは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は他のディストリで使えるかどうか分かりません。)

image

こんな感じで画面が出てきて、

image

印刷完了!

文字化けもないし、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を楽しんでください!

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク

『AirPrintをCUPSを使ったLinuxサーバーで実現してみた。』へのコメント

  1. 名前:すずやだいすけ 投稿日:2010/12/30(木) 16:17:49 ID:589fc6ab0 返信

    Blog更新: AirPrintをCUPSを使ったLinuxサーバーで実現してみた。 http://bit.ly/fltZrW

  2. 名前:すずやだいすけ 投稿日:2010/12/30(木) 23:06:56 ID:589fc6ab0 返信

    AirPrintをCUPSを使ったLinuxサーバーで実現してみた。 | Kidsnote http://htn.to/LcZLaD

  3. 名前:リッキー 投稿日:2011/01/21(金) 12:58:58 ID:589fc6ab0 返信

    Avahiは聞いたことあるけど使ったことないな…時間かかりそうなのでメモだけしておく / AirPrintをCUPSを使ったLinuxサーバーで実現してみた。 | Kidsnote http://t.co/YrfoB8q via @suzusuke