es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

JSPDF no imprime otro HTML en la función de devolución de llamada en React.

Tengo tres divs separados en HTML y quiero guardar todos los divs o etiquetas en un PDF (pueden ser múltiples páginas). Los primeros dos divs o etiquetas se renderizan correctamente en el PDF, pero no la tercera etiqueta.

Nota: Estoy llamando a la tabla y al tercer div dentro de la función de devolución de llamada de doc.html. Pero la tabla se puede renderizar en el PDF pero no la tercera etiqueta.

Mi pregunta es: ¿podemos llamar a otro doc.html dentro de la función de devolución de llamada de doc.html?

El primero:

““
const htmlToConvert=ReactDOMServer.renderToString(

Cliente: {nombreCliente}
Dirección: {0.selectcust}

“`

)

Segundo div como tabla:


Último div:

Test

““

////
Para generar el PDF:
““
doc.html(htmlToConvert, {
callback: function (doc) { doc.autoTable({ html: ‘#my-table1’, theme: ‘grid’,tableWidth: 198,startY: 65 ,margin:{right:5,left:6},styles: { halign: ‘center’ } })

doc.html( myContainer.current);
doc.save(‘print.pdf’)
},

     x: 4,
     y: 30,    

});

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible llamar a otro doc.html dentro de la función de retorno de llamada de doc.html. Sin embargo, el problema con el tercer div que no se muestra en el PDF puede deberse a que la referencia myContainer no está correctamente referenciada en la llamada a doc.html.

    Una forma de solucionar este problema es utilizar ReactDOMServer.renderToString() para convertir el div myContainer en una cadena HTML y luego pasarla a la llamada a doc.html de la siguiente manera:

    const myContainerHtml = ReactDOMServer.renderToString(myContainer.current);
    doc.html(myContainerHtml);
    doc.save('print.pdf');
    

    Esto debería asegurar que los tres divs se muestren en el PDF.

Comments are closed.