◆JSP◆ (583レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
374: 2009/02/26(木)15:41 ID:M1Max02p(1/3) AAS
すみませぬ
FOPのライブラリで、XML+XSLで動的にPDFを生成して出す仕組みを作っています。
フォームにファイルを指定させ、ボタンを押すとJSPが呼び出され、
JSPの構文内でFOPを実行し、出てきたPDFのストリームを、ブラウザで表示するようにしたいのです。
JSPではHTMLの形で整形して出すしかやったことないのですが、
HTML以外のファイル(PDF)を返す方法ってありますか?
可能であれば、そのファイルをブラウザが「開く」「名前をつけて保存」のダイアログをいちど出す形で返す方向にしたいです。
アドバイスお願いしまする
376: 2009/02/26(木)16:07 ID:M1Max02p(2/3) AAS
>>375
サーバーサイドのプログラムは初心者なもので。
Servletでも良い方法があれば教えてください。
378: 2009/02/26(木)19:18 ID:M1Max02p(3/3) AAS
>>377
ありがとうございます。とりあえずJSPでやってみる方向で努力しています。
(ダメならServletのほうを研究してみます)
3行目をヒントに、とりあえずサーバーにpdfの一時ファイル(temp.pdf)を作ってから、それを返すロジックをやってみているのですが・・・
<%
/* 〜fopでtemp.pdfを吐き出す処理〜 */
response.setContentType("application/pdf");
response.addHeader("content-disposition","attachment; filename=temp.pdf");
OutputStream os=response.getOutputStream();
FileInputStream fis=new FileInputStream("temp.pdf");
int len=0;
while(fis.read()!=-1)len++;
byte b[]=new byte[len];
fis.read(b);
os.write(b);
%>
目的どおり、ボタンを押すと「開く」「ダウンロード」を選択するダイアログは出てくれるのですが、
出てきたデータが化けているようで開けないです。データそのもののバイト数は元ファイルと同じです。
文字コードが違うとかそのような理由なのでしょうか?
pdfのようなバイナリファイルの場合、一番上での<%@ page language="java" pageEncoding="UTF-8"...といった部分はどのように指定するのが良いですか?
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 1.047s*