共有フォルダにPDFを入れると印刷してくれるソリューションを作ったよ
ついに、卒研生活が始まりましたが、とても大変なことが起きました。
ネットワークプリンタが、ドライバ的な問題で MacOSX や Linux から印刷できないのです。
卒研と言えば様々な OS を利用するわけですから、毎週報告書を印刷しないといけない僕らにとってこれは死活問題です。
ところで、WindowsServer2003 を導入したので、これで印刷プロキシ的な物を作れないかと思っていました。
PS プリンタサーバになりすます WindowsServer の構築方法など、いろいろ見つけましたが思うような品質が得られないらしいので自作することに。
とりあえず深い考えはないのですが、PDF を共有フォルダにぶちこんで印刷出来るようにすればとても幸せになれるんじゃないかと思っていろいろ調べました。
最初は SendMessage を使って AdobeReader を操作しようだとか、ActiveX を使って AdobeReader を操作だとかしてましたが、実は AdobeReader の実行時引数にある物を指定すると勝手に印刷してくれるという隠しオプションがあったんです。
"C:¥Program Files¥Adobe¥Reader 8.9¥Reader¥AcroRd32.exe" /n /t hoge.pdf
とかこんな感じで hoge.pdf が読み込まれてデフォルトプリンタで印刷されるんです。
すばらしいですね。
あとは適当に印刷キューが入るのを待って、AdobeReader のプロセスを殺して、ファイルを削除して、フォルダに PDF が無いかをみて、あったら印刷して、という繰り返しです。
今のところは、印刷するたび AdobeReader が立ち上がってうざいので(といっても、サーバだから関係ないけど)、出来れば AdobeReader を起動させずに簡単に印刷出来るようにしたいですね。出来ればコマンドラインで。
AdobeReader を起動せず(ウィンドウを表示させず)に印刷できる方法を知っている方がだれかいれば教えてください><