как отобразить 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,
моя версия 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 на новой вкладке.