Estoy tratando de convertir mi página html a pdf usando jsPDF. Esencialmente, estoy usando el método html de jsPDF, dándole una fuente y opciones y luego, en la función de devolución de llamada, guardaría el documento. Pero tengo un problema cuando se trata de dividir el documento html único en varios divs y guardar cada div en una página. Estoy probando el siguiente código y deja todas las páginas en blanco.
mi html parece
<div class = "resultpage" > <div class = "print-section-1"> //some content </div> <div class = "print-section-2"> //some content again </div> <div class = "print-section-3"> //content... </div> </div>Mi js se parece a:
window.jsPDF = window.jspdf.jsPDF; let doc = new jsPDF({ orientation : "portrait", unit : 'px', format : 'a4', hotfixes : ["px_scaling"], putOnlyUsedFonts : true }) doc.html($(".prints-section-1")[0], { x: 10, y : 10, margin : [50, 200, 50, 200], autoPaging : "text" }) doc.addPage() doc.html($(".print-section-2")[0], { x: 10, y : 10, margin : [50, 200, 50, 200], autoPaging : "text" }) doc.addPage() doc.html($(".print-section-3")[0], { x: 10, y : 10, margin : [50, 200, 50, 200], autoPaging : "text" }) doc.save("test")Esto deja todas las páginas vacías.
Si modifico el js, para tener un encadenamiento de devoluciones de llamada como a continuación, puedo imprimir el último div (print-side-2 en este caso), pero las páginas anteriores están en blanco.
doc.html($(".print-section-1")[0], { callback : function(doc) { doc.addPage(); doc.html($(".print-section-2")[0], { callback : function(doc) { doc.save("test.pdf") } x: 10, y : 10, margin : [50, 200, 50, 200], autoPaging : "text" }) } x: 10, y : 10, margin : [50, 200, 50, 200], autoPaging : "text" })¿Alguien puede señalar lo que estoy haciendo mal? Busqué soluciones, pero muchas usan métodos obsoletos como addFromHTtml, y algunos sugirieron usar saltos de línea como "<!--ADD_PAGE>" _ y style = "page-break-before: always", pero ambos no funcionan. Revisé la documentación y no ha sido un gran apoyo. Por favor, ayúdame.