Мне нужно показать PDF-файл с данными, это данные: application / pdf; base64, @Session ["Pdf"].
Итак, процесс работает на моем компьютере. Я открываю PDF и автоматически добавляю PDF с данными в GOOGLE CHROME.
Проблема в том, что когда я делаю этот процесс в веб-среде или IE, страница HTML ничего не показывает.
1-й предварительный
<body>
<object data="data:application/pdf;base64, @Session["Pdf"]" type="application/pdf" style="width: 100%; height: 100%;" frameborder="0" scrolling="no">
<p>It appears you don't have Adobe Reader or PDF support in this web browser. </p>
<embed src="data:application/pdf;base64, @Session["Pdf"]" type="application/pdf" />
</object>
</body>
2-й предварительный
<div class="modal-body">
<iframe src="data:application/pdf;base64, @Session["Pdf"]" style="width: 100%; height: 100%;" frameborder="0" scrolling="no">
@*<embed src="@Session["Pdf"]"></embed>*@
</div>
3-й
<script type="text/javascript">
var data= "data:application/pdf;base64,@Session["Pdf"]" ;
if (data == "" || data == undefined) {
alert("Falied to open PDF.");
} else {
//For IE using atob convert base64 encoded data to byte array
if (window.navigator && window.navigator.msSaveOrOpenBlob) {
var byteCharacters = atob(data);
var byteNumbers = new Array(byteCharacters.length);
for (var i = 0; i < byteCharacters.length; i++) {
byteNumbers[i] = byteCharacters.charCodeAt(i);
}
var byteArray = new Uint8Array(byteNumbers);
var blob = new Blob([byteArray], {
type: 'application/pdf'
});
window.navigator.msSaveOrOpenBlob(blob, fileName);
} else {
// Directly use base 64 encoded data for rest browsers (not IE)
var base64EncodedPDF = data;
var dataURI = "data:application/pdf;base64," + base64EncodedPDF1;
window.open(dataURI, '_blank');
}
}
</script>