Ajax リクエストからの応答として受け取ったバイナリ ストリームから PDF ファイルを作成しようとしています。
経由XmlHttpRequest
で次のデータを受け取ります。
%PDF-1.4....
.....
....hole data representing the file
....
%% EOF
これまでに試したことは、 を介してデータを埋め込むことでしたdata:uri
。今は何の問題もなく、元気に動いています。残念ながら、IE9 と Firefox では動作しません。考えられる理由は、FF と IE9 でこのdata-uri
.
現在、すべてのブラウザで機能するソリューションを探しています。これが私のコードです:
// responseText encoding
pdfText = $.base64.decode($.trim(pdfText));
// Now pdfText contains %PDF-1.4 ...... data...... %%EOF
var winlogicalname = "detailPDF";
var winparams = 'dependent=yes,locationbar=no,scrollbars=yes,menubar=yes,'+
'resizable,screenX=50,screenY=50,width=850,height=1050';
var htmlText = '<embed width=100% height=100%'
+ ' type="application/pdf"'
+ ' src="data:application/pdf,'
+ escape(pdfText)
+ '"></embed>';
// Open PDF in new browser window
var detailWindow = window.open ("", winlogicalname, winparams);
detailWindow.document.write(htmlText);
detailWindow.document.close();
前述したように、Opera と Chrome で問題なく動作します (Safari はテストされていません)。IE または FF を使用すると、空白の新しいウィンドウが表示されます。
ユーザーが PDF ファイルをダウンロードできるようにするために、ファイル システム上に PDF ファイルを構築するような解決策はありますか? すべてのブラウザ、少なくとも IE、FF、Opera、Chrome、Safari で動作するソリューションが必要です。
Web サービスの実装を編集する権限がありません。そのため、クライアント側でのソリューションでなければなりませんでした。何か案は?