如何使用NodeJS下载pdf并将其发送给客户端? [英] how to download pdf using NodeJS and send it to the client?

查看:933
本文介绍了如何使用NodeJS下载pdf并将其发送给客户端?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用NodeJS下载PDF文件,然后将其数据发送到客户端以嵌入到页面中。以下是我如何下载PDF文件:

  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('downloads');
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);
});
}

如何将从NodeJS收到的数据发送到客户端?

编辑
i找到解决方案:


  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('数据',功能(块){

console.log('下载');

chunks.push(chunk);

}) ;

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


我的角度控制器中的下一个: p>


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



解决方案

解决方案:


  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('数据',功能(块){

console.log('下载');

chunks.push(chunk);

}) ;

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


我的角度控制器中的下一个: p>


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



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

解决方案

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

这篇关于如何使用NodeJS下载pdf并将其发送给客户端?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆