Screeshot do conteudo de um iframe Asp. Net
Fala Pessoal boa noite.
estou precisando tirar um screeshot do conteúdo de um iframe,pois bem consseguir tirar um screen shot da tela no tamanho do iframe e gravalo na maquila até ai tudo bem, o unico problema é a posição do print. pois o broswer conta como ponto 0,0 o inicio do HTML mas o Grfics usa como 0,0 o inicio da tela então ao inves do print começar no inicio do HTML ele inicia no inicio da tela.
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
using System.Web.UI.HtmlControls;
namespace ProjetoEquipeDeTeste
{
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
private void Tirar_Print()
{
System.Drawing.Rectangle r = new System.Drawing.Rectangle();
//essas são as posições de X e Y, mas levam como parametro a screen completa a tela
//Valores colocados a mão como gabiarra
r.X = 9;
r.Y = 129;
//iframe.Attributes["Height"].ToString() Retorna o Tamanho do Height dele mesmo
string a = iframe.Attributes["Height"].ToString();
//Coloca o tamanho do iframe como tamanho do retangulo. Ps o "a" esta como "540px" por isso o Substring
r.Height = int.Parse(a.Substring(0, a.Length - 2));
a = iframe.Attributes["Width"].ToString();
r.Width = int.Parse(a.Substring(0, a.Length - 2));
//Cria um bitmap
Bitmap b = new Bitmap(r.Width, r.Height);
Graphics gfx = Graphics.FromImage(b);
//Tira o Print
gfx.CopyFromScreen(r.X, r.Y, 0, 0, r.Size, CopyPixelOperation.SourceCopy);
gfx.Dispose();
//Salva na pasta Imagens no servidor
MemoryStream stream = new MemoryStream();
b.Save(stream, ImageFormat.Jpeg);
String saveImagePath = Server.MapPath("Imagens/") + "aaa.jpg";
b.Save(saveImagePath);
}
protected void Button1_Click(object sender, EventArgs e)
{
try
{
Tirar_Print();
txtPasso.Text = Convert.ToString(int.Parse(txtPasso.Text) + 1);
}
catch (Exception ex)
{
}
}
}
}
Vlw Pessoal
estou precisando tirar um screeshot do conteúdo de um iframe,pois bem consseguir tirar um screen shot da tela no tamanho do iframe e gravalo na maquila até ai tudo bem, o unico problema é a posição do print. pois o broswer conta como ponto 0,0 o inicio do HTML mas o Grfics usa como 0,0 o inicio da tela então ao inves do print começar no inicio do HTML ele inicia no inicio da tela.
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
using System.Web.UI.HtmlControls;
namespace ProjetoEquipeDeTeste
{
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
private void Tirar_Print()
{
System.Drawing.Rectangle r = new System.Drawing.Rectangle();
//essas são as posições de X e Y, mas levam como parametro a screen completa a tela
//Valores colocados a mão como gabiarra
r.X = 9;
r.Y = 129;
//iframe.Attributes["Height"].ToString() Retorna o Tamanho do Height dele mesmo
string a = iframe.Attributes["Height"].ToString();
//Coloca o tamanho do iframe como tamanho do retangulo. Ps o "a" esta como "540px" por isso o Substring
r.Height = int.Parse(a.Substring(0, a.Length - 2));
a = iframe.Attributes["Width"].ToString();
r.Width = int.Parse(a.Substring(0, a.Length - 2));
//Cria um bitmap
Bitmap b = new Bitmap(r.Width, r.Height);
Graphics gfx = Graphics.FromImage(b);
//Tira o Print
gfx.CopyFromScreen(r.X, r.Y, 0, 0, r.Size, CopyPixelOperation.SourceCopy);
gfx.Dispose();
//Salva na pasta Imagens no servidor
MemoryStream stream = new MemoryStream();
b.Save(stream, ImageFormat.Jpeg);
String saveImagePath = Server.MapPath("Imagens/") + "aaa.jpg";
b.Save(saveImagePath);
}
protected void Button1_Click(object sender, EventArgs e)
{
try
{
Tirar_Print();
txtPasso.Text = Convert.ToString(int.Parse(txtPasso.Text) + 1);
}
catch (Exception ex)
{
}
}
}
}
Vlw Pessoal
Lucas Higor
Curtidas 0