как отобразить PDF в кодировке base64?

Я должен отобразить 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.

Я смотрю ниже JsFiddles, для которых работают в FF, но не в Chrome,

http://jsfiddle.net/yLx2W/

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

моя версия Chrome : Версия 54.0.2840.99 m

Версия FireFox: 49.0.2

есть ли у кого-нибудь идея, пожалуйста, поделитесь.

спасибо заранее

2 ответов


Он должен работать с Chrome вы можете использовать <iframe src="data:base64"..>или использовать <object data="data:base64..." ...>

у меня такая же проблема с Т. Е. это невозможно для отображения pdf с base64 Мне пришлось генерировать временные файлы на сервере для отображения их с помощью IE он только отобразить существующий файл.

попробуйте использовать библиотека JS для отображения pdf, как PDF.js.


для тех, кто все еще не может этого сделать, я нашел это в другом ответе, но я не помню, кто...

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 на новой вкладке.