Как отобразить 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
Ответы
Ответ 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 на новой вкладке.
Ответ 3
Для IE 11 вы можете использовать решение, представленное здесь: https://blogs.sap.com/2018/05/17/how-to-view-a-base64-encoded-pdf-using-pdfviewer/