- - PR -
作成したPDFを新たな画面に表示
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-10-12 19:30
作成したPDFを新たな画面に表示する方法はありますか。
strutsで実装しています。javaScriptは使用しない方法で。 (window.open()を使用すると入力値のチェックをして駄目なら 同じ画面に戻るように実装しているのですが、新しく開いた 画面に処理が戻ってしまいます。) // contentTypeを出力 response.setContentType("application/pdf"); // ファイル名の送信(attachment部分をinlineに変更すればインライン表示) String fileName1 = sentakuForm.getChohhyouName() + ".pdf"; String fileName2 = new String(fileName1.getBytes("Shift_JIS"),"8859_1"); response.setHeader("Content-disposition", "inline; filename=\""+ fileName2 +"\""); try{ br = new BufferedInputStream(new FileInputStream(tempPdfFile)); // ファイル内容の出力 out = response.getOutputStream(); byte[] buffer = new byte[8192]; int rsize; while ((rsize = br.read(buffer)) != -1) { out.write(buffer, 0, rsize); } }finally{ out.close(); } こんな感じで実装しているのですが、ボタンを押した画面に表示されてしまいます。 新しい画面を開いて表示したいのですが。 よろしくお願いします。 |
|
投稿日時: 2006-10-12 20:39
ムリじゃね?
今やろうとしていることが、サーバーからクライアントのUA(ブラウザ)の状態を変更することにあたるから。 したがって、妥協点を見つけるしかないと思います。 ・同じ画面で我慢 ・window.open()で新しいウインドウを開き、そこに表示。但しエラーのときは、「エラーがあったよ」と表示し、閉じるボタンだけ用意、またはウインドウを閉じざるを得ない状況にしてしまう(リンク先やボタンが何もない、ただメッセージが表示されてるだけ)。 参考までに。 |
|
投稿日時: 2006-10-13 13:05
javaScriptを使用しない方法となると思いつかないです。
でもWindow.openを使用しようとしていたみいなのは謎。 ということで、javaScriptを使用しての案ならば。 1.入力チェックをAJAXなどを使用して確認。 2.OKの場合はPDF表示処理、NGの場合はエラー表示。 1.をservletにして、 2.で再表示の際にOKならonloadでPDF表示処理 ってのもあり。 |
1