Asegúrese de realizar la prueba con la última versión de html2canvas .
Las versiones antiguas no son compatibles y los problemas informados para ellas se cerrarán.
Tengo una página con varios divs. Cada uno de estos divs tiene varios elementos de tabla de reacciones . Quiero tomar una captura de pantalla de cada div y luego crear un archivo zip y descargarlos todos a la vez (como una especie de pseudo presentación de diapositivas en PowerPoint). Esto funciona perfectamente en Mac, sin embargo, cuando uso Google Chrome en Windows, los divs con varias tablas de reacción parecen no terminar de renderizarse cuando se toma la captura de pantalla. Al activar el registro, he confirmado que el renderizado se completa en ~ 1000ms, pero el canvas
que devuelve html2canvas parece como si no hubiera terminado de renderizarse. Se renderizan las tablas de reacción, pero el resto del texto de la página es algo transparente, como si estuviera a la mitad de la carga.
Todavía no tengo una reproducción jsfiddle, pero trabajaré en eso para agregar una aquí.
He podido hacer que esto funcione, aunque no es óptimo.
html2canvas(div, {
letterRendering: true,
onclone: (doc) => {
// onclone logic to resize div
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve()
}, 400)
})
}
}).then((obj) => {
let img = obj.toDataURL()
// save image to zip file
})
Llegué al tiempo de espera de 400ms a través de prueba y error. Algo menos, y observé el problema de que el div no se procesaba por completo cuando html2canvas toma la captura de pantalla.
Estoy de acuerdo, tuve un problema muy similar, donde las imágenes generadas por Html2Canvas estaban siendo cortadas. Esto solo sucedió en las compilaciones de producción. En entornos de desarrollo funcionó bien. La solución alternativa anterior resuelve mi problema. Estoy de acuerdo en que no es ideal y se necesita una solución adecuada para esto, pero por ahora resuelve mi problema. Gracias @ tjchambers32 por esta
También me encontré con este problema y causó un error bastante grave de nuestra parte. ¡Me gustaría arreglarlo!
Comentario más útil
También me encontré con este problema y causó un error bastante grave de nuestra parte. ¡Me gustaría arreglarlo!