問題:
から PDF ファイルを表すバイナリ文字列を取得しますWeb サービスを作成し、ブラウザ間互換性のある方法で表示可能な PDF に変換します。
試行された解決策:
データ URI にバイナリ文字列を埋め込むが、IE9 では制限が発生する
質問:
Web サービスの実装を変更せずに、すべての主要なブラウザ向けに PDF ファイルを生成する代替方法はありますか?
解決策:
XMLHttpRequest の responseType を "blob" に設定する際に BLOB API を使用する:
<br>var request = new XMLHttpRequest();<br>request.open("GET", "/path/to/pdf", true); <br>request.responseType = "blob";<br>request.onload = function (e) {</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">if (this.status === 200) { // `blob` response console.log(this.response); // create `objectURL` of `this.response` : `.pdf` as `Blob` var file = window.URL.createObjectURL(this.response); var a = document.createElement("a"); a.href = file; a.download = this.response.name || "detailPDF"; document.body.appendChild(a); a.click(); // remove `a` following `Save As` dialog, // `window` regains `focus` window.onfocus = function () { document.body.removeChild(a) } };
};
request.send();
このアプローチにより、ユーザーは PDF ファイルを Web ページに埋め込むのではなくダウンロードできるようになり、PDF を表示するためのクロスブラウザー互換のソリューションが提供されます。
以上がすべての主要なブラウザでバイナリ文字列から PDF ファイルを表示するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。