Подтвердить что ты не робот

Как отобразить 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 м

FireFox Версия: 49.0.2

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

Спасибо в Advance

4b9b3361

Ответ 1

Он должен работать с Chrome, который вы можете использовать

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

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

У меня та же проблема с IE: невозможно отобразить PDF со строкой base64.

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

Вы по-прежнему можете использовать библиотеку JS для отображения своего PDF- PDF.js например PDF.js

Ответ 2

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

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