Tengo una div en mi sitio, quiero colocar un botón/enlace (u otras cosas del tipo) que al hacer clic guardará el div y todos sus contenidos a los usuarios computadora, al igual que el código de impresión que se utiliza para imprimir divs. Soy un principiante de programación, así que toda la ayuda será apreciada.captura de usuario div como imagen y guardar en computadora
Respuesta
Hay un límite de compatibilidad del navegador que hace esto. HTML2Canvas puede representar su contenido HTML en un elemento canvas
. Luego puede usar el método canvas.toDataURL("image/png");
(docs in MDN) para exportar el elemento canvas
a una imagen jpeg
o png
.
No es ampliamente compatible, pero aún es posible.
, ya probé esto mi contenido no funcionará en un elemento canvas :( –
No tiene que tener un 'canvas' en la página. – Mohsen
explique más? ¿Funcionará con flash? –
Suponiendo que desea un archivo de texto o HTML, no un archivo de imagen como una captura de pantalla, JavaScript no puede iniciar un diálogo "Guardar" en un navegador web, solo una respuesta de una solicitud web a un servidor hazlo.
Para empezar, se necesita un formulario con su botón y un campo oculto:
<div id="saveme">stuff to save</div>
<form action="saveme.aspx" method="POST">
<input type="submit" onclick="prepsave()">
<input type="hidden" id="savemepost">
</form>
y necesitas algo de JavaScript para guardar el contenido DIV para el campo oculto antes de presentarlos:
<script>
function prepsave() {
document.getElementById("savemepost").value =
document.getElementById("saveme").innerHTML;
return true;
}
</script>
en el servidor, necesitará algo de código para aceptar el texto y escupir de nuevo en la forma de un archivo adjunto:
<script runat="server">
Response.Clear()
Response.AddHeader("content-disposition","attachment; filename=saved.html")
Response.Write(Request.Form("savemepost"))
</script>
Advertencia # 1: Probablemente hay algunos errores menores y mucho margen de mejora, esto es solo una prueba de concepto.
Advertencia # 2: El código del lado del servidor anterior es potencialmente inseguro, ya que permite que cualquier página web controle el contenido que va desde el dominio al navegador web del usuario. Deberá agregar algunas medidas para evitar que se abuse de este.
Él dice que quiere que sea algo así como una captura de pantalla en su comentario sobre el pregunta. –
manera fácil
var MyDiv1 = document.getElementById('DIV1');
var MyDiv3 = document.getElementById('DIV2');
MyDiv3.innerHTML = MyDiv1.innerHTML;
html2canvas(MyDiv3, {
useCORS: true,
onrendered: function (canvas) {
var dataUrl = canvas.toDataURL("image/png");
document.getElementById("HiddenField1").value = dataUrl;
}
});
uso de un botón y llamar ur valor del campo oculto
ButtonClick1()
{
string imgval = HiddenField1.Value;
imgval = imgval.Replace("data:image/png;base64,", "");
byte[] imgData = Convert.FromBase64String(imgval);
using (System.Drawing.Image image = System.Drawing.Image.FromStream(new MemoryStream(imgData)))
{
String path = Server.MapPath("~/imgFolder");
image.Save(path + "\\output.jpg", ImageFormat.Jpeg); // Or Png
}
}
Una manera fácil de hacer esto sería utilizar la API de JavaScript de GrabzIt a capture a div. Solo necesitarías hacer algo como lo siguiente. Donde #features es la identificación del div que desea capturar.
<script type="text/javascript" src="grabzit.min.js"></script>
<script type="text/javascript">
GrabzIt("Your Application Key").ConvertURL("http://www.example.com/my-page.html",
{"target": "#features", "bheight": -1, "height": -1, "width": -1}).Create();
</script>
Descargo de responsabilidad He creado esta API!
- 1. Guardar contenido div como imagen en el servidor
- 2. Guardar tabla HTML como imagen
- 3. Guardar muchos elementos de lienzo como imagen
- 4. usando ScreenUtils para guardar la captura de pantalla como imagen en libgdx
- 5. Guardar como una imagen png en Android
- 6. Guardar wpf ver como imagen, preferiblemente .png
- 7. ¿Es posible guardar un gráfico de Google como una imagen?
- 8. Guardar una página web como imagen
- 9. Guardar un lienzo WPF como una imagen
- 10. WPF: Cortar y guardar imagen
- 11. cómo guardar el lienzo como imagen png?
- 12. ¿Cómo guardar el objeto gráfico como imagen en C#?
- 13. Compilar/Guardar/Exportar HTML como una imagen PNG usando Jquery
- 14. Cómo guardar una imagen seleccionando "guardar imagen como ..." en un menú contextual usando Selenium Webdriver (Python)
- 15. guardar una imagen con selenio y firefox
- 16. Como imagen verticalmente central dentro div
- 17. StringDictionary no guardar como ajuste del usuario
- 18. Firefox arrastra div como si fuera una imagen
- 19. "Guardar como" y "Guardar y agregar otro" en Admin
- 20. Captura de la salida de Isgl3d como imagen
- 21. Cómo rotar la imagen y guardar la imagen
- 22. cómo guardar el panel como imagen en el columpio?
- 23. Div y Margen de imagen/Relleno
- 24. Guardar un documento de Word como una imagen
- 25. Guardar y cargar imagen SQLite C#
- 26. Android enviar una imagen y guardar url
- 27. Guardar imagen en la galería
- 28. Cómo guardar una cadena base64 como una imagen usando ruby
- 29. Guardar imagen en biblioteca personalizada
- 30. Problemas al sobrescribir (volver a guardar) la imagen cuando se configuró como fuente de la imagen
¿Desea una imagen capturada de su div? – Mohsen
Sí, quiero que el usuario del sitio pueda presionar un botón y luego descargue una especie de captura de pantalla del div en jpg/gif/png o algo –