Sunday, May 19, 2024
 Popular · Latest · Hot · Upcoming
185
rated 0 times [  187] [ 2]  / answers: 1 / hits: 42293  / 10 Years ago, tue, march 4, 2014, 12:00:00

I am trying to download a PDF file using NodeJS then send its data to client to be embedded in the page. Here is how I download the PDF file:



exports.sendPdf = function(req, responce) {
var donneRecu = req.body;
var url = 'http://www.ieee.org/documents/ieeecopyrightform.pdf'//pdf link
http.get(url, function(res) {
var data = '';
res.on('data', function(chunk) {
console.log('downloading');
data += chunk;
});
res.on(end, function() {
console.log('downloaded');
responce.header(Access-Control-Allow-Origin, *);
responce.header(Access-Control-Allow-Headers, X-Requested-With);
responce.header(200, {'content-type' : 'application/pdf'});
responce.send(data);
});
}).on(error, function() {
callback(null);
});
}


How do I send the data received from NodeJS to the client side?



EDIT
i found the solution :




exports.sendPdf = function(req, res) {

var donneRecu = req.body;

console.log(donneRecu['lien']);

var url = donneRecu['lien']; //pdf link

http.get(url, function(response) {

var chunks = [];

response.on('data', function(chunk) {

console.log('downloading');

chunks.push(chunk);

});

response.on(end, function() {
console.log('downloaded');
var jsfile = new Buffer.concat(chunks).toString('base64');
console.log('converted to base64');
res.header(Access-Control-Allow-Origin, *);
res.header(Access-Control-Allow-Headers, X-Requested-With);
res.header('content-type', 'application/pdf');
res.send(jsfile);
});
}).on(error, function() {
callback(null);
});
}



next in my angular controller:




var pdf = $scope.base64ToUint8Array(data);    
PDFJS.getDocument(pdf).then(functiongetPdfHelloWorld(_pdfDoc) {
$scope.pdfDoc = _pdfDoc;$scope.renderPage($scope.pageNum); });


More From » node.js

 Answers
13

i found the solution :




exports.sendPdf = function(req, res) {

var donneRecu = req.body;

console.log(donneRecu['lien']);

var url = donneRecu['lien']; //pdf link

http.get(url, function(response) {

var chunks = [];

response.on('data', function(chunk) {

console.log('downloading');

chunks.push(chunk);

});

response.on(end, function() {
console.log('downloaded');
var jsfile = new Buffer.concat(chunks).toString('base64');
console.log('converted to base64');
res.header(Access-Control-Allow-Origin, *);
res.header(Access-Control-Allow-Headers, X-Requested-With);
res.header('content-type', 'application/pdf');
res.send(jsfile);
});
}).on(error, function() {
callback(null);
});
}



next in my angular controller:




var pdf = $scope.base64ToUint8Array(data);    
PDFJS.getDocument(pdf).then(functiongetPdfHelloWorld(_pdfDoc) {
$scope.pdfDoc = _pdfDoc;$scope.renderPage($scope.pageNum); });


[#72168] Monday, March 3, 2014, 10 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
eanskylerg

Total Points: 524
Total Questions: 107
Total Answers: 100

Location: Colombia
Member since Mon, May 2, 2022
2 Years ago
;