• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

856
Views
¿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 3 years ago · Juan Pablo Isaza
1 answers
Answer question

0

puedes usar:

 doc.lastAutoTable.finalY

como esto :

 doc.text('Thank you for your purchase!', 150, doc.lastAutoTable.finalY + 30);
about 3 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 Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error