セブンイレブンのネットプリントをMac OS XやLinuxや*BSDなどで仮想プリンタとして使う
以前、CUPSからネットプリントに出力する簡単なプログラムを紹介したが、最近それが動かなくなったとコメントを頂いたので、色々書き直してみた。
仕組み
CUPS-PDFでPDFファイルを生成し、それをセブンイレブンのネットプリントサービスに投げるだけ。APIは用意されていないのでCGIを直接叩く。
やり方
アカウント取得
http://www.printing.ne.jp/register/index.html にアクセスしてユーザIDとパスワードを取得する。
CUPS-PDFのインストール
まずCUPS-PDFをインストールする。
Linux/*BSDであれば各ディストリビューションのパッケージまたは本家サイトにあるtarball/rpmをインストール。gentooはemerge cups-pdfでok。
Mac OS XはCUPS-PDF for Mac OS Xをダウンロードしてインストール。
CUPS-PDFの設定
次のPerlプログラムを任意の場所に置く。ここでは/usr/local/bin/cups-pdf-netprint.plを想定。
このうち、ユーザーIDとパスワードと書かれた部分を先ほど取得したアカウント情報に書き換える。メールアドレスには印刷に必要なプリント予約番号が届くので携帯端末で見られるメールアドレスがオススメ。
設置後、/etc/cups/cups-pdf.confにプログラムが自動的に呼び出されるように設定する。
# vi /usr/local/bin/cups-pdf-netprint.pl (ユーザーID, パスワード, メールアドレスを設定) # chmod +x /usr/local/bin/cups-pdf-netprint.pl # echo "PostProcessing /usr/local/bin/cups-pdf-netprint.pl" >> /etc/cups/cups-pdf.conf
プリンタの追加
/etc/init.d/cupsd start
http://localhost:631/ にアクセスして、プリンタの追加でcups-pdfを追加すればいい。PPDはtarballの中に含まれている*1。
Mac OS Xでは「システム環境設定」→「プリンタとファクス」を実行。プリンタの追加でCUPS-PDFが表示される。
あとは
印刷するだけ
注意点とTIPS
TODO
- 手抜きのため簡易スクレイピングしかしていない
- Web::Scraperがインストールされてない状況でも動かせるように依存関係を最低限にした
- あとでWeb::Scraperで書き直したいところ
- ネットプリントへの送信時にエラーが発生した場合の対処がされてない
- CGIを叩いてるので仕様変更があると対処できない
- 出力されたPDFに応じて自動的に用紙サイズ、カラーを選択するといいかも
- CAM::PDFを使えば良さげ