web-dev-qa-db-ja.com

base64でエンコードされたpdfを表示する方法は?

Base64 pdfを新しいタブに表示する必要があります。私は以下のコードを使用しています

 var windo = window.open("", "");  
 var objbuilder = '';
 objbuilder += ('<embed width=\'100%\' height=\'100%\'  src="data:application/pdf;base64,');
 objbuilder += (fileData);
 objbuilder += ('" type="application/pdf" />');
 windo.document.write(objbuilder); 

FireFoxで動作し、ChromeおよびIEでは動作しません。タグも試してみましたが、同じ出力で、FFで動作しましたが、ChromeおよびIEでは動作しませんでした。

以下では、FFでは動作しているがChromeでは動作していないJsFiddlesを調べます。

http://jsfiddle.net/yLx2W/

http://jsfiddle.net/yLx2W/1/

Chromeバージョン:バージョン54.0.2840.99 m

FireFoxバージョン:49.0.2

誰でもアイデアを持っていますか、共有してください。

前もって感謝します

17
dnyaneshwar

Chromeで使用できます

<iframe src="data:base64...">

<object data="data:base64...">

私は同じ問題に直面しています[〜#〜] ie [〜#〜]:pdfを表示することはimpossibleですbase64文字列。

[〜#〜] ie [〜#〜]彼のみ既存のファイルを表示パスを使用して。

まだJSライブラリを使用して、PDF.jsのようなPDFを表示できます。

8
Alexis

それでもできない人のために、私は他の誰かの答えにこれを見つけましたが、誰を覚えていない...

var objbuilder = '';
objbuilder += ('<object width="100%" height="100%" 
data="data:application/pdf;base64,');
objbuilder += (myBase64string);
objbuilder += ('" type="application/pdf" class="internal">');
objbuilder += ('<embed src="data:application/pdf;base64,');
objbuilder += (myBase64string);
objbuilder += ('" type="application/pdf"  />');
objbuilder += ('</object>');

var win = window.open("#","_blank");
var title = "my tab title";
win.document.write('<html><title>'+ title +'</title><body style="margin-top: 
0px; margin-left: 0px; margin-right: 0px; margin-bottom: 0px;">');
win.document.write(objbuilder);
win.document.write('</body></html>');
layer = jQuery(win.document);

この方法で、pdfを新しいタブで開きます。

11
CHACO