linuxBeanでiOSから印刷可能なAirPrint対応仮想PDFプリンタを構築する方法。

こんにちは!
サイト管理人のYosukeです。

 

iOSで開いている画面や、表示中のウェブサイトをPDFに変換したいな~と思うときが多々ありまして、

LinuxでAirPrint対応の仮想PDFプリンタを構築出来ないかな…と思ったら、案外簡単だったのでご紹介します。

 

お気に入りのlinuxBeanで作業を進めていきます。

 

 

必要なソフトウェアのインストール

Synaptic パッケージマネージャで、

  • cups
  • cups-pdf
  • avahi-daemon
  • python-cups

 

 

をインストールします。(推奨の追加パッケージも全てインストールします)

 

(apt-getでインストールしても構いません)

$ sudo apt-get install cups cups-pdf avahi-daemon python-cups

 

 

CUPSの設定

Operaブラウザを開いて、URLをhttp://localhost:631/adminと入力して、
CUPSサーバー(プリントサーバー)設定の画面を開きます。

 

cups-pdf を共有プリンターにする(重要)

デフォルトでは「共有しない」になっていますので、変更します。

[ プリンターの管理 ] ボタンをクリック。

 

先ほどインストールした、cups-pdf 「PDF」をクリック。

 

右側のプルダウンメニューより、[ プリンターの変更 ]をクリック。

 

ここは設定変更不要です。「続ける」をクリック。

 

共有:このプリンターを共有するチェック。「続ける」をクリック。

 

ここは設定変更不要です。「プリンターの変更」をクリック。

 

これで cups-pdf の共有設定は完了です。

 

プリントサーバー設定を変更する

続けて「管理」を開きます。

[ 設定ファイルの編集 ]をクリック。

 

一番下の行に

 

ServerAlias *

を追加して[ 設定の保存 ]をクリック。

 

サーバー設定:の項目に下記のようにチェックを入れて[ 設定の変更 ]をクリック。

 

これで CUPS の設定は完了です。ブラウザを閉じて下さい。

 

Avahi用のサービスファイルを作成する

AirPrint用に、avahiが利用するサービスファイルを作成します。

airprint-generate.py というスクリプトを利用する方法が簡単なのでこれを利用します。

ターミナル(端末)を使用した操作になります。

 

$ mkdir ~/script

$ cd ~/script

$ wget https://raw.github.com/tjfontaine/airprint-generate/master/airprint-generate.py

 

 

あっと言う間ですが、wget というダウンロード用コマンドを使用して、

airprint-generate.py スクリプトを、~/script(/home/yosuke/script/) にダウンロードしました。

 

スクリプトを実行します。

$ sudo python airprint-generate.py

 

 

何も起きなかったような感じになりますがこれでOKです。ターミナルを閉じて下さい。

 

Avahi用のサービスファイルを移動する

先ほどのスクリプトファイルと同じディレクトリに、サービスファイル、AirPrint-PDF.service が出来上がっています。

 


point!

もし、ここでサービスファイルが出来上がっていない場合は、プリンターの共有設定出来ていない可能性があります。「cups-pdf を共有プリンターにする(重要)」の項に戻ってもう一度確認して下さい。


 

rootユーザとして現在のフォルダを開く」で開き直してから、AirPrint-PDF.service を切り取り、

 

 

/etc/avahi/servicesに貼付けます。

 

これで完了です。

 

このサービスファイルを適用する為に、ターミナルを開いて

$ sudo service avahi-daemon restart

で、Avahi を再起動しておきます。

 

ファイアウォールの設定

外部から接続する際のお約束、ファイアウォールでポートを開放する事も忘れずに。

 

iOSからプリンターが表示されれば完了です。

 

いざ印刷!

印刷(変換)されたPDFデータは、/var/spool/cups-pdf/ANONYMOUSに保存されます。

 

導入後の考察

プリントサーバーのcupsbonjourプロトコル利用のavahi仮想PDFプリンタcups-pdfを組合せて、

iOSのAirPrint機能から、印刷出来るようになった。という感じですかね。

 

応用出来ること

iOS(iPhoneやiPad)からプリンターで印刷しようと思ったら、AirPrintに対応のプリンターを準備しないと印刷出来ません

ひと昔前のプリンターは対応していませんでしたので、その為にプリンターを新規購入した人も多いと思います。

 

この作業を通じて、AirPrintに対応していないUSBプリンターやネットワークプリンターも、linuxBeanと接続さえ出来れば

iOSから印刷出来るようになるわけなので、かなり便利なのではないでしょうか。

 

ちょっと、今更感はありますが、どなたかの参考になれば幸いです。

You may also like

Leave a comment