NOBlog 〜バカの一念〜

基本的にはNOB(ノブ)の日記。
スキークロス国際レース出場を目標に日々努力中。

  November/2007  
S M T W T F S
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  
blog内検索

[ASP.NET]PDFをインラインフレームに表示する

2005-01-17
検索条件を入力してボタンを押すと、条件にマッチするデータを検索し、帳票をインラインフレームに表示する。
よく見る画面ですが、結構みなさん苦戦しているようです。次のようにするのが、まぁ一番楽なのではないでしょうか。
  Dim report As New ReportDocument
  'rptファイルをロードします。
  report.Load("C:\test.rpt")
  '
  'ここでパラメータ等を設定します。
  '
  '帳票をメモリーストリームにエクスポートする
  Dim strm As IO.MemoryStream
  strm = DirectCast(report.ExportToStream(ExportFormatType.PortableDocFormat),IO.MemoryStream)
  With Response
    .Clear()
    .ContentType = "application/pdf"
    'メモリストリームの内容を書き込む
    .OutputStream.Write(strm.ToArray, 0, CInt(strm.Length - 1))
    .Flush()
  End With

細かい事を言うと、サンプルプログラムが長くなってしまうので、おおまかな処理を書きました。
大体の場合、これだけでも問題ありませんよ。
結構、rptファイルを一旦pdfとしてサーバーに保存して、そのファイルにリダイレクトするみたいな手法を使っていることが多いですけど、それだと権限管理とか面倒なので、個人的にはこれが一番かと思います。

注意点としては、.OutputStream.Writeの第3引数はIntegerです。pdfのファイルサイズがIntegerで表現可能なサイズを超えている場合は、これではだめです。
まぁ、現実問題として、帳票が2Gを超えるなんてありえないので、ほとんどの場合はこれで大丈夫だと思われ。。

※注
当ブログのTipsは、@IT等の情報サイトの内容を参考にして構成された記事
もあります。Tipsの内容に著作権等権利を侵害する内容があった場合には、
告知して下さい。早急に訂正または削除にて対応したいと思います。

この記事へのトラックバックURL

この記事へのトラックバック
今回は、HTMLでのiframeの話をします。 iframeとは、インラインフレームと呼ばれるフレームのことです。 iframeを使用すると、ウェブページ内にフレームを作成することができます。 通常のフレームとインラインフレームとの違いは…。 framesetタグで作る通常のフレームの場合は、上下、または左右に画面を分割し、その中に別ファイルを読み込みます。 iframeタグで作るインラインフレームの場合は、ウェブページ内の好きな場所にフレーム領域を作り、その中に別ファイルを読み込みます。
HTMLのiframe【ネットビジネス用CGI Perl HTML Javascriptの情報サイト】at 2006-07-22 13:02:48
この記事へのコメント
Copyright(C) PwBlog. All rights reserved.