Я предполагаю, что байты в теге <PDFContent>
являются base64
кодированными байтами файла PDF.Если это неверно, вам необходимо обновить REST API, чтобы сначала выполнить кодирование base64
в байтах PDF.Вы не можете заставить свой сервер отправлять необработанные байты PDF веб-клиенту как есть.
В javascript, как только вы получили закодированные в base64
байты PDF, вы можете сгенерировать PDF в два этапа:
- Преобразование байтов в кодировке base64 в большой двоичный объект PDF.
- Создание URL-адреса файла из этого большого двоичного объекта и открытие URL-адреса.
Вот пример JavaScriptкод для того же:
<script>
function displayPDF() {
//The PDFContent bytes are mapped to an input element called pdfString
if($('#pdfString').val() == '')
return;
var file = b64toBlob($('#pdfString').val(), 'application/pdf');
//If the browser is IE or Edge
if (window.navigator && window.navigator.msSaveOrOpenBlob) {
window.navigator.msSaveOrOpenBlob(file);
}
else {
var fileURL = URL.createObjectURL(file);
window.open(fileURL);
}
}
function b64toBlob(b64Data, contentType, sliceSize) {
contentType = contentType || '';
sliceSize = sliceSize || 512;
var byteCharacters = atob(b64Data);
var byteArrays = [];
for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {
var slice = byteCharacters.slice(offset, offset + sliceSize);
var byteNumbers = new Array(slice.length);
for (var i = 0; i < slice.length; i++) {
byteNumbers[i] = slice.charCodeAt(i);
}
var byteArray = new Uint8Array(byteNumbers);
byteArrays.push(byteArray);
}
var blob = new Blob(byteArrays, {type: contentType});
return blob;
}
</script>