Мне нужно декодировать строку base64 в файл PDF. Я использую этот код. Но команда window.atob всегда сообщает об этой ошибке: Не удалось выполнить «atob» в «Окне»: строка, которая должна быть декодирована, неправильно закодирована.
Я знаю, что файл правильный, потому что я уже расшифровал его, используя веб-сайт, который декодирует base64 в pdf.
Я не знаю, поможет ли это, но мы используем Aurelia Framework.
Функция преобразования
function converBase64toBlob(content, contentType) {
contentType = contentType || '';
var sliceSize = 512;
var byteCharacters = window.atob(content); //method which converts base64 to binary
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
}); //statement which creates the blob
return blob;
}
вызов функции
self.blob = self.converBase64toBlob(result.contents[0].pdf.replace(/^[^,]+,/, ''), 'application/pdf');
self.blobURL = URL.createObjectURL(blob);
window.open(this.blobURL);