Не удалось преобразовать возвращенный ответ PDF в base64 в JavaScript

Ниже приведен ответ в формате PDF, полученный от сервера API, и я попытался преобразовать его в файл PDF, но не смог.

%PDF-1.3
%ÿÿÿÿ
4 0 obj
<<
/Predictor 15
/Colors 1
/BitsPerComponent 8
/Columns 282
>>
endobj
3 0 obj
    <<
/Type /XObject
/Subtype /Image
/BitsPerComponent 8
/Width 282
/Height 479
/Filter /FlateDecode
/DecodeParms 4 0 R
/ColorSpace /DeviceGray
/Length 39904
>>
stream
ÄÁ‡¿–óãøñ×}ŸÙé´÷Þi (+³m•ŒHv(‰¨(³ˆ e dF’(YE!TH%-
R Çë÷¾®ë¾ïsŸœ’ßãÑçû|âÿ ¿§žsÊÛºýùáýnüÄÈ7 ß5òûj ¿¼ÿöOþ Áÿ;M †œ‘"Òzž~W Sô·c ù uS ‚:3ü? ÿg†SY ‘Õ    n|¼œ ÖcóG “¸Ûÿ ø¿¶oLûF ¿ÐÅ ±Ô<õ§Å³ž™óé¯þÏàÿÈ®¿ ½XF¤ÿëõ9¤vçÔ&ÑzÄ5… µÊȨ~åjÿ7ð `Í Í jÝ/ }y+þ©Å OŒiH¤ùE- kÔ^ 5ßTïä © ýŸÀ£nk_ªvéGïö Ú ¹ xDmAcƒßSÐt§ÁSüÃ0ÿ ðh›[B%u‡ô/!r•Á$xÞØñœn0… Œ´¢ÆF#£ ¢>S ¯Zóù+ÃˉÍõ ² STr®ºïJ‚¯ ôa‰±ç˜f°„ \À4cM) û—Y7 iíÿ eµ¨¤‹± jÀ F¾g‘±ïxÏà7Œ]Wfì š®6ϵD>ðèÃ£ë … L Ñ Î5c}c¾2Öiб•¼hð'Æ. l¬Eí­æ[Kä
><ºN'vù^ƒ VXWtƒ±+Û û€± Øn¤ãd#oð¹úëäÞ
NúÃÈf"õ=úðèêDd²y~üÆÈC…›ŒÜÆMF&ÒÐ o ,gž‘ †ªo¦ .6ò81 ><ºÎ&èb%Cš.7¨ÓÙÈÕð¢A oÀ9 ÝXn°‘_ÔêÔ¼ä†c» ©Oì7 :<ºÆ Übe Ê6« 2Èà$(Ú¬¦¡µº –èjXapg#õÎÒG
ö t#±Ø£ ®Ù ™õx ²‘êI ÊxX- .Ñ'€2õ>è£ À ƒ ôïš+ÌXÓåüI R ×{Ôáѵ‚à #»\ׇë[r¢îkx©z3…¿ú*A5=†@×—@‰Ž‡ÛÕA°ÀÞ·š8p[Áãê{D&x´áѵ•`¢ÁÔ ‚OwÕa¸Îaº~ ÿÙ€ ±»ˆ,t0ÐX—Bé‚ { ”ðž‘ £Kà€As" z”áQFp«‘m 3 wi‹âßü Ö%(šéÞ×¾úý€‘ý¿mW'”‘ó‚Á’r‚é § iíQ†GY Ðyÿ“§~¡ö€qÚ †~Þœ&Oõ%èzÃË¿X•-ïÜØ’ع × )Y­žOì .<Ê +øD¿,ƒez Y ¯{×ÃÚþÂ…% zË`ö 3/MSo›>Nìn .<ÊN Òîk]V ÃÕë‰5 ûƒGâÅ“à•Æ~lN µ ‘ =ºð(»‘ £Á'7ÜøªÁ ࢥ ±ÍW pÊ“› 
endstream
endobj
11 0 obj
<<
/Type /ExtGState
/ca 1
/CA 1
>>
endobj
14 0 obj
<<
/Type /ExtGState
/CA 1
>>
endobj
10 0 obj
<<
/Type /Page
/Parent 1 0 R
/MediaBox [0 0 595.28 841.89]
/Contents 8 0 R
/Resources 9 0 R
>>
endobj
9 0 obj
<<
/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/ExtGState <<
/Gs1 11 0 R
/Gs2 14 0 R
>>
/XObject <<
/I1 3 0 R
/I2 5 0 R
/I3 7 0 R
>>
/Font <<
/F2 12 0 R
/F1 13 0 R
>>
>>
endobj
15 0 obj
<<
/Producer (pdfmake)
/Creator (pdfmake)
/CreationDate (D:20190301123029Z)
>>
endobj
17 0 obj
<<
/Type /FontDescriptor
/FontName /GYTURC+Roboto-Medium
/Flags 4
/FontBBox [-732.421875 -270.996094 1169.921875 1056.152344]
/ItalicAngle 0
/Ascent 927.734375
/Descent -244.140625
/CapHeight 710.9375
/XHeight 528.320313
/StemV 0
/FontFile2 16 0 R
>>
endobj
18 0 obj
<<
/Type /Font
/Subtype /CIDFontType2
/BaseFont /GYTURC+Roboto-Medium
/CIDSystemInfo <<
/Registry (Adobe)
/Ordering (Identity)
/Supplement 0
>>
/FontDescriptor 17 0 R
/W [0 [908 652.832031 569.335938 556.152344 516.113281 255.371094 255.371094 564.453125 541.015625 332.519531 536.621094 249.023438 565.429688 328.125 879.882813 486.816406 630.859375 568.359375 279.296875 743.164063 653.320313 568.359375 568.359375 568.359375 568.359375 568.359375 395.507813 568.359375 568.359375 665.527344 630.371094 639.160156 646.972656 568.359375 602.050781 568.359375 562.988281 566.894531 351.5625 624.023438 709.960938 606.933594 690.429688 282.226563 870.117188 603.515625 639.160156 523.4375 555.664063]]
>>
endobj
13 0 obj
<<
/Type /Font
/Subtype /Type0
/BaseFont /GYTURC+Roboto-Medium
/Encoding /Identity-H
/DescendantFonts [18 0 R]
/ToUnicode 19 0 R
>>
endobj
21 0 obj
<<
/Type /FontDescriptor

Пожалуйста, помогите мне здесь, чтобы найти решение этой проблемы.

Я пробовал в приложении почтальона с этим API, и загрузка файла работает нормально. Но в JavaScript я не мог преобразовать

Я использую код ниже, чтобы скрыть

var file = new Blob([response], { type: 'application/octet-stream' });
var link = document.createElement('a');
link.href =  window.URL.createObjectURL(file);
link.download = "test";
link.click();

Как вы получили response.data?

Musa 01.03.2019 15:06
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
1
588
1

Ответы 1

По-видимому, эта проблема не связана с преобразованием самого содержимого PDF.

Попробуйте использовать скачать.js и blob. Предположим, вы используете fetch.

let download = require('./download.min');

...

function downloadFile(token, fileId) {
  let url = `https://www.googleapis.com/drive/v2/files/${fileId}?alt=media`;
  return fetch(url, {
    method: 'GET',
    headers: {
      'Authorization': token
    }
  }).then(function(resp) {
    return resp.blob();
  }).then(function(blob) {
    download(blob);
  });
}

Обратитесь к этому вопрос.

Другие вопросы по теме