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

418
Vistas
¿Cómo guardar zip con pdf usando jszip y pdfmake?

Quiero crear archivos PDF con pdfmake, usar jszip para agregarlos en 1 carpeta y luego descargar esta carpeta como zip, pero cuando quiero descargar el zip, está vacío. ¿Qué me estoy perdiendo?

Mi código a continuación:

 for (let i = 0; i < 3; i++) { const dd = { content: [ "First paragraph", "Another paragraph, this time a little bit longer to make sure, this line will be divided into at least two lines" ] }; const ddPdf = this.$pdfmake.createPdf(dd); const examples = zip.folder("examples"); examples.file(`Hello${i}.txt`, "Hello World\n"); ddPdf.getBlob(blob => { examples.file( `example${i}.pdf`, blob, { binary: true } ); }); } zip.generateAsync({ type: "blob" }).then(function(content) { FileSaver.saveAs(content, "example.zip"); });

El zip descargado no tiene los pdf, solo los txts.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

no ha proporcionado un ejemplo completo de su código, por lo que no puedo ejecutarlo, pero parece:

Creó una carpeta de examples , colocó un archivo en ella y luego tomó un objeto zip puro y lo guardó como example.zip ;

PD: preste atención, está llamando a zip.generateAsync examples.file forma asíncrona, lo que puede causar otros problemas. Le recomendaría que coloque su zip.generateAsync dentro de la devolución de llamada ddPdf.getBlob .

Podría ser algo como:

 const ddPdf = this.$pdfmake.createPdf(dd); const examples = zip.folder("examples"); ddPdf.getBlob(blob => { examples.file( "example.pdf", blob, { binary: true } ); examples.generateAsync({ type: "blob" }).then(function(content) { FileSaver.saveAs(content, "example.zip"); }); }); }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Me encontré con un problema similar en mi aplicación:

 let ddPdf = pdfMake.createPdf(docDefinition); ddPdf.getBlob(blob => { console.log('Flag') })

La función de devolución de llamada nunca se activaría. Lo mismo para los métodos base64 y de búfer. No estoy seguro de por qué.

Lo arreglé como:

 //Inside PDF generator loop let ddPdf = pdfMake.createPdf(docDefinition); let ddPdfBlob = await ddPdf.getBlob(); //ddPdfBlob now holds the Blob examples.file(`example${i}.pdf`, ddPdfBlob, {binary: true}) //after all loops examples.generateAsync({type:"blob"}) .then(function(content) { saveAs(content, `examples.zip`); });
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