- - PR -
PDFの出力とページの表示変更を一度のレスポンスで行いたいです。
«前のページへ
1|2|3
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-04-10 17:54
ひろれいさんの発言から、やはり PDF ファイルが壊れている可能性も否
めないのかなぁという気もしてきました。 とは言え、.Response.BinaryWrite() の中身を確認するのはちょっと難 しそうなので、保存した PDF ファイルをバイナリエディタなどで開いてみる のが一番手頃そうです。 正常な PDF ファイルであれば、"%PDF-***" というような文字列が先 頭に入っていると思われますが、保存した PDF ファイルはどうなっている でしょうか。 <HTML> などの文字列が入っているのであれば、BinaryWrite の前に 行っている .Clear() .ClearHeaders() .ClearContent() が怪しそう な気がします(自分は使ったことがなかったので、ちょっと気になる程度で はありますが)。多少壊れた PDF ファイルでも、Adobe Viewer は正常 に表示してくれるので気づきにくいのかもしれません。 これは可能性の一つで、実際は正しいファイルが作成されているのかもし れませんけどね。 カッコがないのは模写しそこねたのだと思っていましたが… (VB.NET だからカッコいらないんだっけ?と思っていたのはここだけの秘密)
私の勘違いもあって、少々混乱させてしまっているかもしれません。 (申し訳ないです) サブウィンドウを開くという記述をしたのは、そのサブウィンドウに PDF ファ イルを表示するためでした。今回は inline ではなく attachment なので、 サブウィンドウを開く必要はないはずです。 ただし、一度ポストバックを行って、画面の内容を書き換えた HTML を出 力後、JavaScript の onLoad イベントで PDF 出力用のリクエストを送 るような感じになると思います。 イメージはこんな風。
ポストバック後の a.aspx から、またポストバックを行う場合を考えて、こ んな感じのコードになるのではないかと(未確認)。
onload 部分は当然ながら用が済んだら出力しないようにしなければなり ません。 こうして書くと説明がヘタなのがもろバレでかなり恥ずかしいのですが、わ かりますでしょうか。 _________________ ぽぴ王子@わんくま同盟 ぽぴ王子の人生プログラミング中 / ぽぴンち。 | ||||||||||||
|
投稿日時: 2007-04-10 18:28
ありがとうございます。
%PDF-から始まっていたので、PDF自体は問題なさそうです。 >こうして書くと説明がヘタなのがもろバレでかなり恥ずかしいのですが、わ >かりますでしょうか。 とんでもないです。親切にサンプルコードまで付けて頂いて。 わかりやすいです。 やってみます。 何か、皆さんに背中を押して頂いてるみたいで、感謝しきりです。 | ||||||||||||
|
投稿日時: 2007-04-10 21:11
ぽぴ王子さんに示して頂いたアドバイスを頼りにやったら、
やっと私の思っていた動きが出来るようになりました。 助かりました。 本当にありがとうございました。 |
«前のページへ
1|2|3