2017-03-29 2 views
1

Je me sers html-pdf pour convertir mon html et voici mon code:Comment générer un tampon PDF vers un navigateur à l'aide de NodeJS?

var pdf = require('html-pdf') 
var html = 'somehtmlfile.html' 

pdf.create(html).toBuffer(function (err, buffer) { 
     if (err) { 
      console.log(err) 
     } else { 
      console.log(buffer) 
      var pdfBuffer = new Buffer(buffer) 
      res.setHeader('Content-disposition', 'inline; filename="test.pdf"'); 
      res.setHeader('Content-type', 'application/pdf'); 
      res.send(pdfBuffer) 
     } 
} 

Je ne reçois pas un fichier PDF à downloader, ni aucune sortie d'un fichier PDF dans le navigateur. Le console.log(buffer) est la suivante:

<Buffer 25 50 44 46 2d 31 2e 34 0a 31 20 30 20 6f 62 6a 0a 3c 3c 0a 2f 54 69 74 6c 65 20 28 fe ff 29 0a 2f 43 72 65 61 74 6f 72 20 28 fe ff 29 0a 2f 50 72 6f ... > 

est-il un moyen simple de faire cela? Ou est-ce que je le fais mal?

Je veux juste sortir le tampon sous forme de pdf dans le navigateur.

+0

Quelle lib est-ce que vous utilisez pour créer le PDF (pdf.create)? –

+0

@DiegoZoracKy uhm je viens de le dire dans le post – FewFlyBy

Répondre

1

Modification:

pdf.create(html).toStream(function(err, stream) { 
    if (err) { 
     console.log(err) 
    } else { 
     res.set('Content-type', 'application/pdf'); 
     stream.pipe(res) 
    } 
}); 
+0

Le succès, mais rien ne se passe – FewFlyBy

+0

Rien ne se passe où? Quel framework http utilisez-vous qui vous donne 'res'? –

+0

J'utilise express – FewFlyBy