malli p
malli p

Reputation: 108

Unable to convert PDF returned response to base64 in JavaScript

Below is the PDF response is coming from the API server and I tried to convert to a PDF file but I couldn't.

%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

Please help me out here to find a solution to this issue.

I tried in postman app with this API and downloading the file is working fine. But in JavaScript, I couldn't convert

I am using below code to covert

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();

Upvotes: 2

Views: 1020

Answers (1)

diogenesgg
diogenesgg

Reputation: 2859

Apparently this problem is not related to converting a PDF content itself.

Try using download.js and blob. Assuming you are using 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);
  });
}

Refer to this question.

Upvotes: 1

Related Questions