質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

1回答

5399閲覧

EdgeでのPDFプレビュー表示の不具合

acain

総合スコア12

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

1クリップ

投稿2017/01/06 02:33

編集2017/01/06 03:55

###前提・実現したいこと
EdgeでのPDFプレビュー表示について質問させて頂きます。

PHPで構築された管理画面から登録された情報を、mPDFを用いてPDFファイルとして出力するページで
帳票をプレビュー表示する処理を作成しています。
PHPからheaderでのリダイレクトでPDFファイル生成のページを開いていますが、
FireFox、Chrome、IE、Safariでは想定通りにプレビュー表示されるのですが、
Edgeではプレビュー表示されず、ファイルの保存を促すダイアログが表示されます。

ちなみに、PHPからheaderで開くPDF生成ページを、javascriptからwindow.openで開いた場合は、
Edgeでもプレビュー表示できていました。
管理画面で入力された内容を一旦DBに登録した後で、PDF出力を行う場合がありますので、
DB登録後にheaderでのリダイレクトを行っております。

###該当のソースコード

PHP

1$pdf_file = "http://○○○.com/print_pdf.php?id=".$id; 2header('Content-Type: application/pdf'); 3header('Content-disposition: inline; filename="print_pdf"'); 4header('Cache-Control: maxage=3600'); 5header('Pragma: public'); 6readfile($pdf_file);

あと、JQueryでの処理で、フォームに入力された情報をPOSTで情報を送るためSUBMITし、
同じくmPDFを用いたPDF生成ページを子画面でプレビュー表示する処理を作成しています。
この処理もFireFox、Chrome、IE、Safariでは想定通りにプレビュー表示されるのですが、
Edgeでは空白の画面が開き、それとは別にファイルの保存を促すダイアログが表示されます。

###該当のソースコード

jQuery

1window.open("","preview_pdf","width=900,height=980"); 2$("#mainform").attr('target', "preview_pdf"); 3// Submit先を一旦変更 4$("#mainform").attr('action', "pdf_preview.php"); 5$("#mainform").submit(); 6// Submit先を元へ戻す 7$("#mainform").attr('action', "forminput.php");

どのようにしたらEdgeでもプレビュー表示されるか、アドバイスをよろしくお願いします。

###補足情報(言語/FW/ツール等のバージョンなど)
Microsoft Edge 38.14393.0.0
PHP 5.4
Smarty・フレームワークは未使用
mPDF 5.7

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/01/06 02:48

Edge に PDFがプレビューできるプラグインが入ってないだけでしょ
acain

2017/01/06 03:00

PHPからheaderで開くPDF生成ページを、javascriptからwindow.openで開いた場合は、Edgeでもプレビュー表示できていました。
guest

回答1

0

Content-Disposition ヘッダが inline なのにファイルネームがある、って矛盾しませんか?
そもそも HTTP 1.1 非標準ですから挙動がどうなるかはブラウザ依存ですが。

ファイルネームがある時点でダウンロードとして Edge が扱っている可能性はあるかと思います。
またあるいは、Edge の設定で、PDF ファイルは常にダウンロード扱いになっている可能性もあります。

投稿2020/01/22 06:42

tacsheaven

総合スコア13703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問