CUPS(CUPS-PDF)とネットプリントサービスの夢のコラボ
セブンイレブンのネットプリントサービスが便利。
PDFや画像をWebでアップすれば、全国のセブンイレブン(一部店舗除く)で印刷ができる。
自宅にプリンターがないとか、出張先でちょっと印刷したいとかで便利。
もちろんセブンイレブンが近くあることが前提条件ですが。
で、これをLinuxのCUPSからシームレスに連携してみた。つまり、
- Linuxで普通に印刷する
- メールで「プリント予約番号」が通知される
- セブンイレブンに設置されているプリンターDocuCentre Color f450 MPで通知された「プリント予約番号」を入力する
- 綺麗に印刷される
仕組みは、CUPS-PDFでPDFを出力して、出力されたファイルを定期的に監視して、curlでWebのフォームにPDFを投げつけるだけ。
Gentooであれば、cups-pdfとcurlをインストールする。
# emerge cups-pdf curl
で、定期的に監視してcurlで投げるプログラムはこちら。
#!/bin/sh # # http://www.printing.ne.jp/ # # ユーザーID i="XXXXXXXX" # パスワード p="XXXXXXXX" # カラーモード 1:プリント時に選択 2:カラー 0:白黒 color=1 # 予約番号タイプ 0:英数字 1:数字のみ number=0 # 暗証番号 0:設定しない 1:設定する(半角数字4桁まで) secretcodesw=0 #secretcode="1234" # 登録結果通知 0:通知しない 1:通知する(260文字まで) mailsw=1 mailaddr="tmatsuu@dj.pdx.ne.jp" # 新規ファイルの登録 spooldir="/var/spool/cups-pdf/${USER}" ################################################################################ url="https://www.printing.ne.jp/cgi-bin/mn.cgi" session=`curl -F i=${i} -F p=${p} ${url} 2>/dev/null | sed 's/\r/\n/g' | grep '^<input type="hidden" name="s"' | sed 's/^.*name="s" value="\([^"]*\)".*$/\1/'` args="-F s=${session} -F c=0 -F m=2 -F color=${color} -F number=${number} -F secretcodesw=${secretcodesw} -F secretcode=${secretcode} -F mailsw=${mailsw} -F mailaddr=${mailaddr}" for file in `ls ${spooldir}` ; do curl ${args} -F "file1=@${spooldir}/${file};filename=`date +'%Y%m%d%H%M%S_'`${file}" ${url} >/dev/null 2>&1 rm ${spooldir}/${file} sleep 1 done
ユーザーIDとパスワードとメールアドレスを変えるだけでとりあえずは良いだろう。
ユーザーIDとパスワードはhttp://www.printing.ne.jp/で会員登録する。無料。
とりあえず動いたが、改善すべき点が沢山ある。
- シェルスクリプトに書き込む設定項目をCUPS(PPD)で定義できないか
- Webフォームに投げた際のエラー処理未実装
- Webフォームの構成が変わると対応できない
- エラー処理が実装できてない現状で最後にファイルを消すのはちょっと無謀
- その他諸々
まぁそのうち考えますよ。
最初はPlaggerで試そうかと思ったが、Gentooのg-cpanでPlaggerがインストールできなかったので諦めたのは公然の秘密。
宇宙の果てのレストラン
- 作者: ダグラス・アダムス,安原和見
- 出版社/メーカー: 河出書房新社
- 発売日: 2005/09/03
- メディア: 文庫
- 購入: 11人 クリック: 191回
- この商品を含むブログ (157件) を見る
銀河ヒッチハイク・ガイドの続編だが、前作より面白い。
ただ、やはり言葉の壁があるようだ。あとがきにも書かれてあるが、英語の発音などに関するネタがあり、その面白さが日本語では伝わらないらしい。残念だ。
英語で読んどく?いやいや、それは自分自身の言葉の壁が・・・。
Hatena::Ring::Gentoolinux
はてなリングでGentooLinuxリングを作ってみました。
本当は「gentoolinux」ではなく「gentoo」で作りたかったんですがね。既に使われてるとかで登録できませんでした。
Gentooユーザーの皆さん、どうぞ。
Linuxサーバ Hacks 2
Linuxサーバ Hacks 2 ―コネクティング、モニタリング、トラブルシューティング
- 作者: Bill von Hagen,Brian K. Jones,菅野良二
- 出版社/メーカー: オライリー・ジャパン
- 発売日: 2006/10/24
- メディア: 単行本(ソフトカバー)
- 購入: 3人 クリック: 26回
- この商品を含むブログ (31件) を見る
読んだ。知ってるHacksが多かったが、知らないHacksもいくつか。例えば、
- 拡張属性によってファイル検索を容易にする
- パーティションをアンマウントできない理由を見つけ出す
- ディスクがビジー状態のためアンマウントできない場合、lsofやfuserコマンドを使って開いているファイルや厄介なプロセスを見つけることができます。
とか。常識かもしれないが、自分は知らなかった。
また、前々から試そうと思っていて試してない認証統合(LDAP, Kerberos, NIS)やFreeNX、ファイル共有(NFS, CIFS)などをやらないとなぁと。でも多分まだやらないだろうな・・・。