- ベストアンサー
WEBからEXEファイルの起動。
現在サーブレット+JSPでアプリケーションを作成しています。 基本的な問題かもしれないですが、EXEファイルなどをWEB上から起動するなんてことはやっぱり(当然!?)できないのでしょうか。。。 具体的に現在悩んでいるのは、帳票の印刷なんですが、 ファイルを起動すれば帳票が印刷されるようなmdbファイルを アクセスのレポートを使用して作成し、 それをWEB上のボタンを押したときに起動するようにしましたが、やっぱりできません。 普通はWEBでの表示と印刷関係は別々に考えるものなのでしょうか? 印刷はまったく別のアプリで作成するとか? よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>String[] cmd = {"notepad.exe/p C:\\test.txt"}; としましたが、うまくいきません。 この場合は、 String[] cmd ={"notepad.exe","/p","c:\\error.log"}; というようにします。(配列にそれぞれ入れる必要があります) それは置いておいて、 クライアントから印刷を行い場合は、 PDFを使ったりする場合もありますが、 社内システムなどであれば、 BIP for Web 等のWeb系の帳票支援ツールを使う手もあります。(PDF化するよりも軽いと思います) #ActiveXをダウンロードして印刷する方法です。 クライアントに一度インストールすれば次回からは インストールしませんので、高速に起動しますし、 WWWサーバから帳票定義体とデータファイルを持ってくることで印刷できますので、サーバ側でPDF化する必要がなくなります。(サーバ負荷が減ります) ご参考に。
その他の回答 (4)
- KojiS
- ベストアンサー率46% (145/312)
》JavaScriptですか。これは、IEの印刷ボタンを押した場合と何か違いがあるのでしょうか。 》レイアウトなどを調節できるのかな? 》 [ファイル]-[印刷]を選んだ時に相当する物はあります。「window.print()」 ただし、この方法では細かな設定はできません。 普通にブラウザを使って表示した物を印刷する事と同じです。
お礼
ご回答ありがとうございました。 やっぱり詳細な帳票を作るときはツールをつかうべきなのですかねぇ。。。
- yuji
- ベストアンサー率37% (64/169)
回答になっていないかもしれませんが、 うちの会社ではServletでPDFを作って それをダウンロードさせて、 クライアントからPDFを印刷することで 帳票印刷を実現しています。
お礼
なるほどダウンロードですか。そうするとEXCELをダウンロードさせる方法なども考えられますね。
- ZIGEN
- ベストアンサー率100% (5/5)
ServletからあるEXEファイルを実行できると思います。 //メモ帳起動例 String[] cmd = {"C:\\WINNT\\system32\\notepad.exe"}; Runtime rt = Runtime.getRuntime(); Process pr = rt.exec(cmd); zima_idさんの方法では、Webサーバで定義している プリンターにしか印刷できませんが、大丈夫ですか? Webクライアント側で設定されているプリンターから 印刷しなくても大丈夫なのでしょうか??
お礼
う~む、ハッとさせられるアドバイスありがとうございます。 確かにこの方法ではZIGENさんのいうとおりになりますねぇ。。。 サーバー上におくアクセスファイルのプリンタの設定でなんとかなりませんかねぇ。 それと、ZIGENさんのアドバイスの方法は私もやってみたのですが、印刷を実行させることがうまくいなかなったのです。 例のなかのcmdに渡すパスの指定がよくなかったのでしょうか。 たとえば、C:\にあるtest.txtを印刷しようとして、 String[] cmd = {"notepad.exe/p C:\\test.txt"}; としましたが、うまくいきません。 これじゃあだめですかねぇ。
- KojiS
- ベストアンサー率46% (145/312)
印刷の方だけ。 InternetExplorer4以降なら表示された物を印刷する事は簡単にできます。Netscapeも4以降ならできるはずです。JavaScriptを使用します。
お礼
JavaScriptですか。これは、IEの印刷ボタンを押した場合と何か違いがあるのでしょうか。 レイアウトなどを調節できるのかな?
お礼
いろいろありがとうございました。 ZIGENさんのやり方でやったらうまくいきました。 参考URLも閲覧しましたが、結構いいお値段ですねぇ。 とりあえずは決まったプリンターに印刷するようにして、アクセスでやってみようかと思います。