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

123
Vistas
La salida de react-pdf/renderer no es compatible con pdf-lib

Estoy tratando de renderizar un PDF en la memoria usando el método pdf @react-pdf/renderer y luego introduzco los bytes resultantes en el objeto PDFDocument pdf-lib . La razón por la que hago esto es porque react-pdf no permite incrustar (fusionar) otros PDF y la biblioteca de fusión que estamos usando ( pdf-merger-js ) no admite devolver los números de página del PDF fusionado , lo que significa que no podemos representar correctamente nuestra tabla de contenido.

Lo que sucede es que después de tomar el resultado de @react-pdf/renderer.pdf(...) , codificarlo como base64 y pasarlo a pdf-lib.PDFDocument.load(...) , la vista previa del resultado PDF en el navegador es una cadena de bytes como la siguiente. No hemos tenido problemas para crear esta vista previa en PDF antes de nuestra introducción de pdf-lib :

cadena de bytes-pdf

El código que hace esto es el siguiente ( toc == Table of Contents, ambos argumentos son colecciones de elementos react-pdf ):

 const mergePdfsToObjectUrl = async (toc: ReactElement, pdfPages: any[]) => { if (toc && pdfPages?.length > 0) { const pdfString = await pdf(toc); const string = await pdfString.toString(); const base64string = encode(string); const tocPdf = await PDFDocument.load(base64string); // Create a new document const doc = await PDFDocument.create(); // Add individual content pages const tocPdfPages = await doc.copyPages(tocPdf, tocPdf.getPageIndices()); for (const page of tocPdfPages) { doc.addPage(page); } // Write the PDF to a file const pdfBytes = await doc.save(); const url = URL.createObjectURL(new Blob([pdfBytes])); return url; }

Probé todo, desde diferentes códecs hasta diferentes canalizaciones para transformar los datos react-pdf en una cadena de bytes utilizable, pero nada parece funcionar.

about 4 years ago · Juan Pablo Isaza
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