読者です 読者をやめる 読者になる 読者になる

共有フォルダにPDFを入れると印刷してくれるソリューションを作ったよ

ついに、卒研生活が始まりましたが、とても大変なことが起きました。 ネットワークプリンタが、ドライバ的な問題でMacOSXLinuxから印刷できないのです。 卒研と言えば様々な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を起動せず(ウィンドウを表示させず)に印刷できる方法を知っている方がだれかいれば教えてください><