Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

369
Views
Combine varios búferes de pdf de titiritero de URL en un solo archivo pdf y vuelva al usuario

Estoy tratando de fusionar una cantidad múltiple e infinita de búferes de pdf del titiritero en un solo archivo. Sospecho que tiene algo que ver con el búfer, pero todavía tengo que encontrar una solución que parezca funcionar. Esto me acercó más, ¿Cómo enviar un búfer de PDF al navegador usando NodeJS? , pero el resultado sigue diciendo que no se puede cargar. Adobe, Chrome y Fox-IT dicen que está corrupto o decodificado incorrectamente.

Código titiritero:

 async function generateBulkPDFFromUrl(urlString) { // launch a new chrome instance const browser = await puppeteer.launch({ headless: true, args: ['--font-render-hinting=none'] }); // create a new page const page = await browser.newPage(); await page.setUserAgent('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36'); // set your html as the pages content const url = new URL(`${urlString}`); await page.goto(url, { waitUntil: 'domcontentloaded' }); // create a pdf buffer const pdfBuffer = await page.pdf({ format: 'A4' }); // close the browser await browser.close(); return pdfBuffer; }

Buffer de Puppetteer por si quieres verlo:

 <Buffer 25 50 44 46 2d 31 2e 34 0a 25 d3 eb e9 e1 0a 31 20 30 20 6f 62 6a 0a 3c 3c 2f 43 72 65 61 74 6f 72 20 28 43 68 72 6f 6d 69 75 6d 29 0a 2f 50 72 6f 64 ... 52960 more bytes>

Matriz de búferes enviados al código de combinación:

 [ <Buffer 25 50 44 46 2d 31 2e 34 0a 25 d3 eb e9 e1 0a 31 20 30 20 6f 62 6a 0a 3c 3c 2f 43 72 65 61 74 6f 72 20 28 43 68 72 6f 6d 69 75 6d 29 0a 2f 50 72 6f 64 ... 52960 more bytes>, <Buffer 25 50 44 46 2d 31 2e 34 0a 25 d3 eb e9 e1 0a 31 20 30 20 6f 62 6a 0a 3c 3c 2f 43 72 65 61 74 6f 72 20 28 43 68 72 6f 6d 69 75 6d 29 0a 2f 50 72 6f 64 ... 93378 more bytes> ]

Combinar código (PDF-LIB):

 async function mergePdfs(pdfsToMerges) { const mergedPdf = await PDFDocument.create(); const actions = pdfsToMerges.map(async pdfBuffer => { const pdf = await PDFDocument.load(pdfBuffer); const copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices()); copiedPages.forEach((page) => { mergedPdf.addPage(page); }); }); await Promise.all(actions); return await mergedPdf.save(); }

Puedo obtener un solo pdf para descargar bien, es la combinación la que parece ser el problema. Cualquier idea sería útil. Gracias.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Así que tenía razón al decir que era un problema de búfer. No estoy seguro de que PDF-LIB pueda manejar los búferes de titiritero correctamente... si alguien tiene alguna otra solución, soy todo oídos... er dedos, bueno ojos...

Esto es lo que tengo que trabajar, que se encuentra aquí https://npm.io/package/merge-pdf-buffers

Parece un poco simplista, y no estoy seguro de que esta persona todavía lo apoye... así que puedo bajarlo y ver qué está haciendo. Tal vez lo apoye. jajaja

Sin embargo, en este momento esta solución está funcionando.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!