12

So I'm trying to download a pdf file from a website with my script but the problem is that the file gets broken in the process and I'm pretty sure it's because of wrong encoding being used.

I'm using request lib for downloading the file and I've set the Content-type to application-pdf

My code is pretty simple:4

var fs = require('fs');
var request = require("request");


request({uri: 'xxxxxxxxxxxxxx.pdf', headers: { 'Content-type' : 'applcation/pdf' }} , function (error, response, body) {
  if (!error && response.statusCode == 200) {
    fs.writeFileSync("10111.pdf", body);
  }
})

Where do I need to specify the encoding used for this to work?

I tried opening the pdf that I get by normal saving and SublimeText3 encodinghelper says it's in Windows-something while the one I downloaded is in utf8.

I've gone through the nodejs buffer and fs files and they do not supprt encodings like windows-asd, only the general ones like 'utf8' and 'binary'.

Should I maybe use a different method for obtaining the file?

1
  • 1
    Not a misspelling problem? { 'Content-type' : 'applcation/pdf' } Commented Jun 7, 2016 at 19:25

1 Answer 1

23

I know its very late but i seen your question today so i am answering it so that other can get help from this. You can add the encoding when you are trying to write the file i.e-:

fs.writeFileSync("10111.pdf", body,'binary');

As i set encoding format as binary here you can use which is right encoding format according to your requirenment if you are trying to download a pdf that you can set encoding as null.

Hope this would help

Sign up to request clarification or add additional context in comments.

4 Comments

The thing that fixed it for me was adding encoding: null in the request
@caravana_942 cool, that's the beauty of our open source developers platform (y)
In addition to Zook's comment, here is what I needed to add with axios request for this to work: responseType: 'arraybuffer', reponseEncoding: 'binary' see stackoverflow.com/questions/40211246/encoding-issue-with-axios
This doesn't create valid .pdf as neither 'binary' nor 'null' type

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.