■61738 / inTopicNo.4) |
Re[3]: WebサーバーでPDF変換を行う |
□投稿者/ 魔界の仮面弁士 (2342回)-(2011/08/31(Wed) 23:55:44)
|
■No61728 (Mira さん) に返信 > Word文書(ここは状況によって変わります)をPDFに変換しようとしています
だとすると、どのプリンタードライバーを利用するかとは別の問題で、 ASP.NET での動作は難しいように思えます。
たとえば、Word 文書の印刷を行うには、通常は Microsoft Word が必要になります。 そして Office は、オートメーション動作であれコマンドラインからの起動であれ、 サーバーサイドでの動作をサポートしていないはずです。ライセンス的な問題もありますし。 http://support.microsoft.com/kb/257757/ja
ASP.NET サーバー上での動作を目的として Word を導入することができないとなれば、 代わりとなるソフトは、*.doc や *.docx を印刷または直接 PDF 変換する機能を持っており、 かつ、それがサーバー上での動作をサポートしていなければなりません。
しかも、Word 文書以外についても同様に対応ソフトを探す必要があるようですから、 それはかなり難しいのでは無いでしょうか。(私はそういった製品やサービスを知りません。)
サービスでは無く、デスクトップアプリとして PDF 印刷処理させるためのサーバーを 別途用意しておき、そのサーバーに対して、ASP.NET から処理依頼をかける仕組みを構築するのなら、 PDF プリンター + ファイル印刷用アプリの組み合わせで対処できるかも知れません。
# ライセンス面で問題がでるかどうかは別として。
> サンプルコードの前後の そこにあるのは VBA のコードでしょうか。PDFCreator のことは知らないのですが、 サンプルの中には、サーバー動作を考慮したサンプルもあるのでしょうか? (PDFCreator が今回の案件を満たせるのかどうかという点について、私は情報を持っていません)
仮にサーバー動作を保証していないのだとしたら、スレッドセーフかどうかとは関係無く、 今回の要件には使えないと思います。
> Shell "taskkill /f /im PDFCreator.exe", vbHide Set pdfjob = New PDFCreator.clsPDFCreator という記述もありましたが、PDFCreator というのは ActiveX EXE なのでしょうか?
> が気になって眠れません・・・これでスレッドセーフなのでしょうか・・・ Shell 関数はどうだか知りませんが、少なくとも、exe を呼び出すための Process.Start メソッドについてはスレッドセーフですね。
で、提示されたコマンドラインだと、起動中の "PDFCreator.exe" が強制終了させられますね。 PDFCreator.exe を同時実行させないを前提としているようなので、このロジックのまま使うなら、 同時に起動される事が無いよう、同時実行制御も組み込まないといけないように思います。
|
|