LoginSignup
1
0

More than 5 years have passed since last update.

動的に生成したPDFをEdgeでインライン表示したい

Posted at

背景

  • PDFをiframeタグでインライン(埋め込み)表示したいよくある話
  • サーバーサイドで動的に生成したPDFファイルを表示する
  • レスポンスヘッダの設定などをしてもEdgeだけPDFをダウンロードしてしまう
  • 資料が少なく自力で調査することになった

Edgeの仕様

  • ブラウザに標準でPDFリーダ機能が搭載されている
  • POSTリクエストで取得したPDFファイルは強制ダウンロード
  • レスポンスヘッダでContent-Disposition: inlineを設定してもPOSTリクエストだと無視される

解決策

  • PDF生成に必要なパラメータはURLで送る(GET送信)
  • iframeタグのsrc属性にパラメータつきURLを設定
  • レスポンスヘッダの設定
    • Content-Type: application/pdf
    • Content-Disposition: inline; filename="ファイル名"
    • Content-Length は設定しなくてもよい

補足

  • IEでのPDF表示にはアドオンが必要
  • IE、Edgeではインライン表示時に保存ファイル名をあらかじめ指定することはできない
  • Edgeでの「POSTの場合ダウンロードする」という挙動の回避策は見つからず

関連

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0