PDFデータ(Word、Exelも)はセキュリティー問題もあって、開く前に同意書を読ませて、開くかどうかの意思決定をユーザーにゆだねているサイトもある。
ブラウザ上でクリックで表示させるタイプや、ユーザーのPCにダウンロードさせるタイプや、始めからページに表示させておくタイプもある。
ブラウザに表示させる場合、軽いデータならいいが、何十ページもある重いデータであった場合、その表示の為にサイト閲覧をストップさせたくない。



■ PDFをダウンロード

▶pdfを開く(あるいはダウンロード) pdfをダウンロードする

<a href="file/test.pdf#page=1 target="_blank""><img src="images/pdf-hiraku.png" width="120" height="38" alt="pdfを開く" align="middle" /></a>
これだとユーザーの環境によっては、クリックするとブラウザ上で開いてしまう。
今回は、ブラウザ上で開かずにPCへダウンロードしてから閲覧してもらうように設置してみたい。
ユーザーには、まずファイルをDLしてウイルス対策ソフトにかけてもらうなり納得してから開いてもらうという流れ。

【ブラウザ上で開かずにダウンロードさせる方法】
1. ファイルを圧縮しておく。
2. PHPを使う。

▶pdfファイルを圧縮しておいたタイプ pdfをダウンロード
▶圧縮しないで、PHPをかませたタイプ pdfをダウンロード

PHPをかませた具体的方法は、このサイトのスクリプトをコピーしてforce-download.phpと名前をつけ、htmlやその他必要ファイルと共にサーバー上に設置。
htmlには <a href=" force-download.php?file=ファイル名.pdf "><a>と書く。safari以外のモダンブラウザはOKだった。IEも7、8、9、OKだった。
pdfの他、Word、Exelにも使える。

★注意★ mac版safariにおいては、環境設定 → 一般 → □ダウンロード後 、"安全なファイルを開く" にチェックが付いていると、1. も 2. の方法も効かなくなる。
mac版safariについてはユーザーがこのチェックを外して自衛してもらうのが今のところの最善策なのだそうだ。アプリ入れ替え作業などのとき、うっかり付いてしまったままにならないようにしないとね。というか、デフォルトがすぐさま開かない仕様になってる方がいいのにね。→→→→(Mountain Lion以降では詳細設定できるようです。)



■ PDFをサイト上に始めから表示させておくには

あまり無いかもしれないけれど、メモしておく。
1. <object>タグか<embed>タグで囲む。→→→ブラウザごとのviewerやプラグインに頼ることになる。
2. Google ドキュメントを利用して、PDFをページ内に表示させる。→→→Googleが将来的にこのサービスを止めた場合は見られなくなるのでは?
3. iframe内に表示させる。→→→ユーザーにブラウザ操作のストレスをかけずに済むはず。

【iframeで表示】
(mac)firefoxでは表示されない。(win)firefoxで表示されない上にダウンロードが始まって、別枠でpdfが表示されてしまう。

4. fancybox内で表示してもいいかもしれない。(これはまだ試していない)