Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

117
Vistas
Descargar PDF en navegador con blob

No puedo entender cómo descargar un PDF desde una hoja de cálculo de Google PDF Export Weblink. Generé una hoja de cálculo de prueba para este caso.

Entiendo que necesito implementar encodeURIComponent y/o "Buffer.from" en el blob, pero como sea que lo haga, solo descarga un PDF roto para mí.

Esto es lo que tengo actualmente en su forma más cruda. ¡Gracias por tu apoyo!

Nodo JS:

 const fetch = require('node-fetch'); var url = "https://docs.google.com/spreadsheets/d/1fLjKASR_g5wsvOjjJi6RclqMVd2o_1On-OfimXtId4E/export?exportFormat=pdf&format=pdf&size=A4&fzr=true&gid=477517973&sheetnames=false&printtitle=false&pagenumbers=false&gridlines=false&portrait=true&fitw=true&fith=true&top_margin=0.20&bottom_margin=0.20&left_margin=0.20&right_margin=0.20"; let blob = await fetch(url).then(r => r.blob()); // then send blob variable to javascript

JavaScript:

 function downloadURI(name) { var uri = 'data:application/pdf;base64,' + blob; var link = document.createElement('a'); link.download = name; link.href = uri; document.body.appendChild(link); link.click(); document.body.removeChild(link); delete link; } downloadURI("test"+".pdf")
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Pensé que de var uri = 'data:application/pdf;base64,' + blob; en su script, en este caso, se requiere convertir los datos descargados como base64. Aunque no estoy seguro de la relación entre los scripts entre Node JS: y Javascript: , en su situación, ¿qué tal la siguiente modificación?

De:

 let blob = await fetch(url).then(r => r.blob());

A:

 let buf = await fetch(url).then((r) => r.arrayBuffer()); const data = Buffer.from(buf).toString("base64");

Por esto, puede utilizar data de la siguiente manera.

 var uri = 'data:application/pdf;base64,' + data;

Nota:

  • Como información adicional, por ejemplo, si desea descargar su hoja de cálculo como un archivo PDF usando solo Javascript, también puede usar el siguiente script. Pero, en este caso, se requiere que la hoja de cálculo se comparta públicamente. Tenga cuidado con esto.

     async function downloadURI(name) { var url = "https://docs.google.com/spreadsheets/d/1fLjKASR_g5wsvOjjJi6RclqMVd2o_1On-OfimXtId4E/export?exportFormat=pdf&format=pdf&size=A4&fzr=true&gid=477517973&sheetnames=false&printtitle=false&pagenumbers=false&gridlines=false&portrait=true&fitw=true&fith=true&top_margin=0.20&bottom_margin=0.20&left_margin=0.20&right_margin=0.20"; let blob = await fetch(url).then((r) => r.blob()); var f = new FileReader(); f.readAsDataURL(blob); f.onload = d => { var uri = d.target.result; var link = document.createElement('a'); link.download = name; link.href = uri; document.body.appendChild(link); link.click(); document.body.removeChild(link); delete link; } } downloadURI("test"+".pdf")
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda