[Wicket-ja-user 375] StringResourceStream を使用してのPDF表示について

Zurück zum Archiv-Index

maeda aaake****@gmail*****
2009年 9月 1日 (火) 20:55:46 JST


maedaです。

StringResourceStreamを使用してのPDF表示について質問なのですが

PDF作成ライブラリを使用して吐き出されたByteArrayOutputStreamでPDF表示を行いたいのですが
下記のソースコードを実行すると
ページ数は正しいのですが白紙のPDFが表示されてしまいます。
なにか足りない処理などありますでしょうか?

setCharsetで指定している文字コードはUTF-8です。

/**
 *
 * 印刷ボタン
 */
private SubmitLink printLink = new SubmitLink("printLink") {
	@Override
	public void onSubmit() {
		
		//PDF作成処理
		ByteArrayOutputStream stream = testService.printLink();

		StringResourceStream rs = null;
		rs = new StringResourceStream(stream.toString(),"application/pdf");
		rs.setCharset(Charset.forName(getResponse().getCharacterEncoding()));
		getRequestCycle().setRequestTarget(new ResourceStreamRequestTarget(rs));
	}
};

下記のような感じで
getResponseしてPDFを出力すると正しく表示されるのでPDFは問題ないと思うのですが・・・。

/**
 *
 * 印刷ボタン
 */
private SubmitLink printLink = new SubmitLink("printLink") {
	@Override
	public void onSubmit() {
		ByteArrayOutputStream stream = testService.printLink();

        // responseを取得
        WebResponse response = (WebResponse) getResponse();

        // ヘッダー設定
        response.setContentType("application/pdf");
        response.setHeader("Content-Disposition", "inline");

        // responseのOutputStreamにPDFのByteArrayOutputStreamをセット
        try {
        	OutputStream os = response.getOutputStream();
            os.write(stream.toByteArray());
            os.close();

        }catch (Exception e) {
        	throw new RuntimeException(e);
        }
        //responseをセット
        setHeaders(response);
	}
};




Wicket-ja-user メーリングリストの案内
Zurück zum Archiv-Index