Saltar al contenido

Cómo enviar un archivo pdf desde la aplicación Node/Express al navegador

Bienvenido a proyecto on line, en este lugar vas a encontrar la solucíon de lo que buscas.

Solución:

Debe canalizar desde el flujo de lectura al flujo de escritura, no al revés:

var file = fs.createReadStream('./public/modules/datacollectors/output.pdf');
var stat = fs.statSync('./public/modules/datacollectors/output.pdf');
res.setHeader('Content-Length', stat.size);
res.setHeader('Content-Type', 'application/pdf');
res.setHeader('Content-Disposition', 'attachment; filename=quote.pdf');
file.pipe(res);

También está configurando la codificación de manera incorrecta, pase un objeto con codificación si es necesario.

Creo que encontré tu respuesta en otra publicación Mostrar archivo PDF en un navegador usando node js.

Después de probar su código en Chrome, inmediatamente comienza la descarga del archivo PDF. Pero si desea mostrar el contenido del archivo PDF, puede probar a continuación:

var data =fs.readFileSync('./public/modules/datacollectors/output.pdf');
res.contentType("application/pdf");
res.send(data);

Esto debería enviar contenido PDF directamente al navegador.

Espero que esto responda a su pregunta.

Aquí está la manera más fácil:

app.get('/', (req, res) => res.download('./file.pdf'))

Si esto te da problemas. Verifique la versión de Express.js o cualquier middleware que pueda ser necesario.

Salud

Recuerda algo, que puedes optar por la opción de comentar si descubriste tu atasco en el momento justo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *