Tengo una página web que contiene una tabla de informes. Cuando hace clic en cualquiera de los informes individualmente, se descarga y se muestra como un PDF en una nueva pestaña.
Mi tarea actual, y el problema que tengo, es que también necesito poder descargar todos los informes en esa tabla y mostrarlos en una nueva pestaña como un PDF de varias páginas .
Donde lo tengo ahora, parece que estoy obteniendo dos PDF de datos (a juzgar por el tamaño que puedo ver en la consola). Sin embargo, cuando el PDF se abre en una nueva pestaña, es solo una página. No dos como los que espero. El PDF no se corrompe en el proceso, parece que solo muestra el primer PDF.
Aquí está mi función downloadAll:
async downloadAll() { var parts = [] // parts array to store blob 'parts' to later be combine var cals = this.state.calibrations // the array of JSONs that include the blob UUID let count = 0 await new Promise((resolve) => { cals.forEach(async (cal) => { try { let blob = await (await fetch(api_url + this.state.user.company + '/blobs/' + cal.blob_id + '/download', { headers: { Authorization: this.state.auth_token }})).blob() // API call to download blob with the UUID (cal.blob_id) parts.push(blob) // push the resulting blob to the parts array } catch (e) { console.log(e) } finally { count += 1 if(count === cals.length) { resolve() } } }) }) var blobBuilder = new Blob(parts, { type: 'application/pdf'}) // create a new blob of type PDF with our now-filled parts array console.log(blobBuilder) window.open(URL.createObjectURL(blobBuilder), '_blank'); // open blobBuilder PDF in a new tab }Algo me dice que no es tan simple como juntar dos archivos PDF (obviamente, no estaría preguntando si fuera tan simple), pero no estoy seguro de cómo manipular los datos en el PDF en sí.
Gracias por leer y por favor avíseme si necesita más información.