none
ASP.NETでPDFを出力するには? RRS feed

  • 質問

  •  

    こんにちは。Chip'nDaleです。

    今回も皆様のお力をお借りしたいと思います。よろしくお願い致します。

     

    帳票を印刷する機能を追加するため、PDFをストリームして出力し、ブラウザに表示したいのですが、うまく動いてくれません。

    最初は、

     Response.AppendHeader("Content-Disposition", "attachment;filename=test.pdf")

     を使って『ファイルのダウンロード』ダイアログを表示し『開く』を選択しPDFを表示させようとしていました。

    しかし、PDFを表示する時にAdobe Readerでエラーが出てしまいます。

    また、いろいろ調べた結果

     Response.AppendHeader("Content-Disposition","inline;filename=test.pdf")

    でも行ってみましたが。同様のエラーが表示されました。

     

    エラーの内容は以下の通りです↓↓

    AdobeReaderで「Test[1].pdf」を開けませんでした。

    ファイルの種類がサポートされていないか、またはファイルが破損している可能性があります。

    例えば電子メールの添付文書として送信され、正しくデコードされなかったことなどが考えられます。 

     

    上記のエラーの原因または解決法がわかる方がいらっしゃれば教えて頂きたいと思います。

    よろしくお願い致します。


     

     

     

    2007年8月29日 3:04

回答

  • 教えてくださったリンクをもとにFileStreamを使うことができました。

    ありがとうございます。これからはわからないことがあったらMSDNライブラリを参照します。

     

    教えて頂いたとおり、FileStreamを使いCドライブに保存されたPDFを開いてみたところ、

    同じエラーが表示されてしまいました。

    なので、比較することもできませんでした・・・。

    これは正しいPDFが作成されていないということですよね・・・。

    2007年8月29日 4:55

すべての返信

  • まず、同じストリームをサーバーでブラウザを使わずにFileStreamなどを使ってサーバーのローカルに保存して、正しいPDFが作成できているか確認してみてください。

     

    次にそのPDFとブラウザ経由で出力したPDFをファイルに保存したものを比較ができるバイナリエディタで比較して違いがあるかどうか確認してみてください。

    2007年8月29日 3:39
  • ありがとうございます。

     

    ところで、FileStreamの使い方がよくわかず、教えて頂いたことができずにいます。

    使い方を簡単なコードか何かで教えて頂けませんでしょうか?

     

    お手数おかけしますが、お願い致します。

    2007年8月29日 4:27
  • 使い方がよくわからないプログラミング要素にであったらまずヘルプ(MSDNライブラリ)を参照してください。

    ずばりなサンプルが載っていることもあります。

     

    FileStream クラス

    http://msdn2.microsoft.com/ja-jp/library/system.io.filestream(VS.80).aspx

     

    方法 : 新しく作成されたデータ ファイルに対して読み書きする

    http://msdn2.microsoft.com/ja-jp/library/36b93480(VS.80).aspx

     

    BinaryWriter クラス

    http://msdn2.microsoft.com/ja-jp/library/system.io.binarywriter(VS.80).aspx

    2007年8月29日 4:43
  • 教えてくださったリンクをもとにFileStreamを使うことができました。

    ありがとうございます。これからはわからないことがあったらMSDNライブラリを参照します。

     

    教えて頂いたとおり、FileStreamを使いCドライブに保存されたPDFを開いてみたところ、

    同じエラーが表示されてしまいました。

    なので、比較することもできませんでした・・・。

    これは正しいPDFが作成されていないということですよね・・・。

    2007年8月29日 4:55