jsPdf usando html2canvas.js para exportar pdf desde html no funciona para datos grandes

Hola, estoy usando jsPdf para hacer el pdf de contenido html, me va bien para contenido corto y para crear pdf, pero cuando bash usarlo en contenido grande con html2canvas.js (para renderizar css), no está creando pdf. Cualquier sugerencia o código de muestra para esto sería útil. Gracias.

Es posible crear pdf para archivos grandes. Hay principalmente dos formas de hacer esto:

1. html -> canvas -> image -> pdf (supongo que estás probando este enfoque)

2. html -> pdf (no funciona si html contiene svg)

Te sugiero que vayas por (2) a menos que tengas una buena razón para ir a (1) (como si tuvieras contenido svg) – es una operación bastante costosa para el navegador y existe la posibilidad de que el navegador se bloquee demasiado .

1. html -> canvas -> imagen -> pdf

Esto está muy bien descrito aquí – https://github.com/MrRio/jsPDF/issues/339#issuecomment-53327389

Mi experiencia al usar este método: falla cuando el pdf generado contiene más de 2 o 3 páginas. (probado en los últimos Chrome y Firefox)

2. html -> pdf

var pdf = new jsPDF('l', 'pt', 'a4'); var options = { pagesplit: true }; pdf.addHTML($('body'), 0, 0, options, function(){ pdf.save("test.pdf"); }); 

Esto es mucho más rápido en comparación con el enfoque anterior. ¡Genera pdf que contiene 5-6 páginas en 1-2 segundos!

¡Espero que esto ayude!

PDFPY

https://www.npmjs.com/package/pdfpy

 var data = { //the key as to be same as below input: "./test.html", output: "./output.pdf" } pdfpy.file(data, function(err, res) { if(err) throw err if(res) console.log("success") });