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

959
Vistas
¿Cómo ajustar los elementos dentro de un documento jsPDF cuando una tabla aumenta sus filas, evitando que la tabla o el texto se superpongan verticalmente?

Soy principiante en React y Javascript. He estado tratando de encontrar una solución a mi problema, pero parece que no puedo encontrar la solución específica. Estoy generando un documento .pdf (factura del cliente) usando "jsPdf" y su complemento "jspdf-autoTable".

Todo genera OK dando a cada elemento (texto, imagen, tabla) sus coordenadas de inicio XY en el código javascript. tengo 2 mesas Mesa A y Mesa B. Ambas están colocadas una al lado de la otra en forma vertical. Cuando la "tabla A" aumenta sus filas, llega un momento en que comienza a superponerse a la "tabla B". La tabla B tiene un número fijo de filas.

¿Cómo puedo evitar que la "tabla A" se superponga a la "tabla B" y hacer que TODO el contenido debajo de la "tabla A" se mueva dinámicamente "hacia abajo" cuando la "tabla A" aumenta?

Ejemplo:

 const generatePDF = () => { const unit = "pt"; const size = "A4" const orientation = "portrait"; const doc = new jsPDF(orientation, unit, size); let contentA = { head: [["Item", "Quantity", "Price", "Item Total"]], body: [ ['Water Bottle A', '1', '8.99', '8.99'], ['Water Bottle B', '1', '8.99', '8.99'], ['Water Bottle C', '1', '8.99', '8.99'], ['Water Bottle D', '1', '8.99', '8.99'], ], foot: [['', '', 'Total:', '35.96']], margin: 40, tableLineWidth: 0.5, tableLineColor: "black", tableWidth: 'auto', startY: 100, theme: 'striped', pageBreak: 'auto', } let contentB = { head: [["Subtotal", "$35.96"]], body: [ ['Taxes', '$4.49'], ['Payment Method:', 'Cash'], ], foot: [['Total:', '35.96']], margin: 40, tableLineWidth: 0.5, tableLineColor: "black", tableWidth: 'auto', startY: 150, theme: 'striped', pageBreak: 'auto', } doc.autoTable(contentA) doc.autoTable(contentB) doc.text('Thank you for your purchase!', 150, 800); doc.save("my-report-document.pdf") }

Todas las filas aquí son estáticas (en mi aplicación, estoy recorriendo una matriz de objetos del carro y generando las filas, pero este ejemplo explica mi problema), si tuviera que agregar 30 filas más a la propiedad del cuerpo de "contentA", la tabla se superpondría con la tabla "contentB".

La propiedad "startY" es la única propiedad en este momento que establece la coordenada 'Y' inicial de cada tabla. No me importa si el contenido debajo de la "tabla A" se divide en una segunda página, solo quiero deshacerme de la superposición vertical.

Cualquier ayuda será apreciada.

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

0

puedes usar:

 doc.lastAutoTable.finalY

como esto :

 doc.text('Thank you for your purchase!', 150, doc.lastAutoTable.finalY + 30);
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