仰天イカモノ堂

PantherでFAX自動送信

lprコマンドを使う

Mac OS X v10.3 Panther ではようやく標準で FAX 送受信機能が装備された。 これにからんで、とある席上、知人の osaru さんから、「FileMaker Pro や 4D から自動で FAX 送信したいんだけどなにかいい方法はありませんか?」という相談を受けた。

「そんなん普通にプリンタに印刷するのと同じ処理で印刷先に FAX を指定すりゃいいだけやないのん?」と軽く考えていたのだが、そうじゃないらしい。

調べてみると、Panther は FAX を少し特別扱いしているため普通にプリンタに印刷するようにはいかないようである。(アプリケーションがプリントジョブを作成するときに FAX 用のオプションを指定できるように改良されれば可能になると思うが)

すったもんだの末、一旦 PDF ファイルとしてプリントして、その PDF ファイルを lpr シェルコマンドで送っちゃえばいいんじゃないかという結論に達した。

ただ、Panther が自動で作成するファクスはキュー名が日本語になっちゃってて lpr の出力先プリンタを指定するときに面倒なのだ。 アップルにも確認したが(2004-02-22 現在)FAX キュー名を GUI から簡単に変更する方法はないようなので、次のような方法でコマンドラインから指定しやすいキュー名を持つ FAX を作成しよう。

FAX の作成

  1. 後ほど指定するために FAX 用のプリンタ記述ファイルを準備する。 このファイルはシステムの密林の奥深くに潜んでいるので、これをデスクトップに取り出すシェルスクリプト GetAppleFaxPPD.command を準備した。
    →ダウンロード(約60KB)
  2. 実行するとデスクトップに applefax.ppd というファイルが現れる。
  3. 準備ができたら「プリンタ設定ユーティリティ」を起動する。
  4. option キーを押しながら [追加] ボタンを押す。(option キーを押しながらを忘れないように)
  5. プリンタ追加用のシートが出てくるので、一番上のポップアップメニューで「詳細」を選ぶ。
  6. 「装置: 」は "modem" を選んで、「装置名:」を "autoFAX" に変更する。(別の名前でも良いが、これがキュー名になる)
  7. 「プリンタの機種:」で「その他...」を選び、さっき準備した applefax.ppd を指定する。
  8. [追加]ボタンを押してファクスを作成する。
  9. これでファクスリストに "autoFAX" が追加されたはずだ。

FAX を送信

キュー名を "autoFAX"、送信したい書類を "sample.pdf" とすると、Terminal から、

lpr -P autoFAX -o phone=送信先FAX番号 sample.pdf

のように lpr コマンドを実行するとファクスが送信される。 ちゃんとプリンタ設定ユーティリティから表示したファクスジョブのモニタにも出てくる。

あとは、「送信先FAX番号」の部分を FileMaker や 4D から変更して順次 PDF ファイルに書き出す方法でプリントした書類を送ってやればよい。 AppleScript からこのコマンドを呼び出せるようにラップして実行形式スクリプトで保存しておけばいろんなアプリケーションから利用できるかもしれない。 フォルダアクションを組み合わせると、書類をドロップすると「FAX 送信してくれるフォルダ」なんてのもできるだろう。

この方法で一応自動送信できるのだが、「ちゃんと送信できたのかできてないのかが分かりにくい」、「リトライの回数や間隔を簡単には変更できない」等の問題点がある。

そもそも、アップルの科学力をもってすればこの程度の問題が解決できないワケないので、サードパーティ製の FAX ソフトが売れなくならないようにという、心遣いなのかもしれない。

(2004-02-22)

読者の今泉さんから lp コマンドでも印刷できるのでそっちも紹介してはどうかとのメールを頂いた。次のようにする。

lp -d autoFAX -o phone=送信先FAX番号 sample.pdf

Mac OS XではどちらでもOKなのでお好きなほうでどうぞ。

(2004-11-4)

Copyright© 2000-2004 TAKAHASHI,Ryoji
All rights reserved.