2012-01-31 15 views
12

Tengo un escenario que, estoy creando contenido html dinámico y necesito exportar/guardar el contenido html a un archivo de imagen con php, jQuery y JavaScript [o con cualquier otro si es posible].guardar/exportar archivo de imagen desde el contenido html?

+0

Hola y bienvenidos a stackoverflow. ¿Estás hablando de escribir algo de texto (que en este caso es el origen de una página html) en un archivo de imagen? En general, es posible usar PHP. –

+0

Si se refiere al HTML renderizado, no es exactamente una tarea trivial ... ¿Tal vez sería útil algo más de información sobre el problema? Tal vez haya una mejor manera de alcanzar su objetivo final. – Corbin

+0

quieres guardar el contenido html en un archivo de imagen (jpg/png) así?¿Podrías por favor ser claro – run

Respuesta

1

Después de todo lo que he decidido utilizar el código php

GD and Image Functions

http://php.net/manual/en/ref.image.php

con esto, tengo creado los elementos html específicos en posiciones específicas con imágenes.

gracias a todos por su contribución.

3

Usted puede usar canvas de HTML5 y el método toDataURL. Por ejemplo:

var capture = function() { 
    var root = document.documentElement; 
    var canvas = document.createElementNS('http://www.w3.org/1999/xhtml', 'html:canvas'); 
    var context = canvas.getContext('2d'); 
    var selection = { 
    top: 0, 
    left: 0, 
    width: root.scrollWidth, 
    height: root.scrollHeight, 
    }; 

    canvas.height = selection.height; 
    canvas.width = selection.width; 

    context.drawWindow(
    window, 
    selection.left, 
    selection.top, 
    selection.width, 
    selection.height, 
    'rgb(255, 255, 255)' 
); 

    return canvas.toDataURL('image/png', ''); 
}; 

Se puede ajustar la parte superior, izquierda, anchura y altura para capturar sólo una parte de la página web.

El resultado es una cadena de URI de datos. Puede enviarlo a su servidor o dibujarlo en otro lienzo:

var canvas = document.getElementById('captured'); 
    var ctx = canvas.getContext('2d'); 
    var image = new Image(); 
    image.src = capture(); 

    // the image is not immediately usable 
    $(image).load(function() { // jquery way 
    canvas.width = image.width; 
    canvas.height = image.height; 
    ctx.drawImage(image, 0, 0); 
    }); 

Su plugin probablemente usa este método. También puedes verificar su código fuente.

Editar: Para enviar a su servidor con jQuery que puede hacer algo así:

$("#send-capture-button").click(function() { 
    $.post("/url-to-send-image-to", {image_data: capture()}) 
}); 

En el lado del servidor que tendrá que decodificar los datos de la URL.

Basado en "Michael Witrant" respuesta vistazo a: Compile/Save/Export HTML as a PNG Image using Jquery

+0

¡Gracias por su respuesta! [no estoy acostumbrado a wid canvas] estoy ckekeando este script en el archivo de prueba, para esto he incluido el archivo js en la parte superior. [tomado del ejemplo de w3s] . pero está dando error como- "Error de seguridad 'rgb (255, 255, 255)'", ¿puedes opinar? –

+0

TypeError no capturado: Objeto # no tiene el método 'drawWindow' - error en chrome. –

+0

Asegúrese de que la versión que está utilizando admite HTML5. Como sugerencia, puede probar Firefox 9 con Firebug para la depuración, lo siento, no tengo tiempo para probarlo – Sypress

2

Puse el lienzo y no usé la línea createElement anterior Es probable que necesite agregar esta línea antes de drawWindow() para obtener los permisos de seguridad del usuario. Ver http://murfy.de/read/webgl-drawWindow

netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); 

Si desea guardar la imagen como PNG, etc, me encontré con un guión de utilidad en: http://www.nihilogic.dk/labs/canvas2image/

Cuestiones relacionadas