Html2canvas: elemento de ahorro que se extiende más allá de la ventana gráfica

Creado en 3 nov. 2017  ·  4Comentarios  ·  Fuente: niklasvh/html2canvas

Estoy tratando de usar esto para guardar una página, que se extiende más allá de la ventana gráfica, pero se sigue cortando. ¿Hay alguna forma de ahorrar? a continuación se muestra el código que estoy usando. cuando hago el elemento lo suficientemente pequeño como para caber en la ventana gráfica, funciona bien, pero la imagen que obtengo es demasiado pequeña para lo que la necesito, y aumentar el tamaño solo hace que se vea borrosa. Algunas de estas imágenes en el tamaño que necesito son 1300px+ de alto

`html2canvas(vista previa, {
fondo: '#ffffff',
onrenderizado: (canvas)=>{

            canvas.toBlob((blob)=>{
                FileSaver.saveAs(blob, 'mysave.png');
            })

        }
    })`

Comentario más útil

Puede intentar clonar el contenido del elemento y agregarlo al cuerpo justo mientras se realiza la captura, luego eliminarlo. Algo como

var clone = document.getElementById('my_element').cloneNode(true);
//... style the clone so it doesn't have scroll...

return html2canvas(clone, {
        useCORS: true,
        allowTaint: false,
        logging: false
    }).then(function (canvas) {
        document.body.removeChild(clone);
        return canvas;
    });

Todos 4 comentarios

¿Si el elemento contenido en un contenedor, div, modal, etc. tiene desplazamiento interno?

El contenedor directo que quiero capturar no tiene desplazamiento, pero el contenedor principal sí. Intentaré poner el desplazamiento en el contenedor directo y veré si eso funciona.

No es bueno. Lo ajusté para que el contenedor que estoy capturando se desplace para mostrar el dom completo, y todavía se corta en la sección visible de la pantalla.

alguna otra idea??

Puede intentar clonar el contenido del elemento y agregarlo al cuerpo justo mientras se realiza la captura, luego eliminarlo. Algo como

var clone = document.getElementById('my_element').cloneNode(true);
//... style the clone so it doesn't have scroll...

return html2canvas(clone, {
        useCORS: true,
        allowTaint: false,
        logging: false
    }).then(function (canvas) {
        document.body.removeChild(clone);
        return canvas;
    });
¿Fue útil esta página
0 / 5 - 0 calificaciones