Me gustaría tomar una captura de pantalla de un div dentro del cuerpo del documento (para guardarlo como PDF), pero primero me gustaría clonarlo, ocultarlo para que no esté en la página y manipularlo con estilo antes de que html2canvas lo represente. El problema es que el div se muestra en la página con la manipulación de CSS (pero nunca debería mostrarse). ¿Cuál es la forma correcta de hacerlo?
Tengo que agregar el elemento al cuerpo primero, de lo contrario obtendría este error No Uncaught (in promise) Unable to find element in cloned iframe
El otro problema es que si oculto la opacidad o configuro la visibilidad de ninguno de los div clonados, entonces el PDF guardado no tendrá nada dentro
const myNodeCopy = document.body .querySelector("#myDiv") ?.cloneNode(true); document.body.append(myNodeCopy as Node); (myNodeCopy as HTMLElement).setAttribute( "style", "background-color: white; color: black;" ); // problem if setting styles to opacity 0 or visilibity none because exported pdf will be empty // html2canvas(mydiv, { onclone: function (clonedDoc) { } }).then((canvas)=>{ // add image to JsPDF // remove the cloned div from document body })