将html转换成图片,然后打印图片就可以了using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;namespace DMS.Client.Command
{
public class GetImage
{
private int S_Height;
private int S_Width;
private int F_Height;
private int F_Width;
private string HTML; public int ScreenHeight
{
get { return S_Height; }
set { S_Height = value; }
} public int ScreenWidth
{
get { return S_Width; }
set { S_Width = value; }
} public int ImageHeight
{
get { return F_Height; }
set { F_Height = value; }
} public int ImageWidth
{
get { return F_Width; }
set { F_Width = value; }
} public string WebSite
{
get { return HTML; }
set { HTML = value; }
} public GetImage(string WebSite, int ScreenWidth, int ScreenHeight, int ImageWidth, int ImageHeight)
{
this.WebSite = WebSite;
this.ScreenWidth = ScreenWidth;
this.ScreenHeight = ScreenHeight;
this.ImageHeight = ImageHeight;
this.ImageWidth = ImageWidth;
} public Bitmap GetBitmap()
{
WebPageBitmap Shot = new WebPageBitmap(this.WebSite, this.ScreenWidth, this.ScreenHeight);
Shot.GetIt();
Bitmap Pic = Shot.DrawBitmap(this.ImageHeight, this.ImageWidth);
return Pic;
}
} class WebPageBitmap
{
WebBrowser MyBrowser;
string HTML;
int Height;
int Width; public WebPageBitmap(string html, int width, int height)
{
this.Height = height;
this.Width = width;
this.HTML = html;
MyBrowser = new WebBrowser();
MyBrowser.ScrollBarsEnabled = false;
MyBrowser.Size = new Size(this.Width, this.Height);
} public void GetIt()
{
MyBrowser.DocumentText = HTML;
//也可用rul
//MyBrowser.Navigate(@"C:\Documents and Settings\Administrator\桌面\1.html");
while (MyBrowser.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
System.Threading.Thread.Sleep(100);
}
} public Bitmap DrawBitmap(int theight, int twidth)
{
Bitmap myBitmap = new Bitmap(Width, Height);
Rectangle DrawRect = new Rectangle(0, 0, Width, Height);
MyBrowser.DrawToBitmap(myBitmap, DrawRect);
System.Drawing.Image imgOutput = myBitmap;
System.Drawing.Image oThumbNail = new Bitmap(twidth, theight, imgOutput.PixelFormat);
Graphics g = Graphics.FromImage(oThumbNail);
g.CompositingQuality = CompositingQuality.HighSpeed;
g.SmoothingMode = SmoothingMode.HighSpeed;
g.InterpolationMode = InterpolationMode.HighQualityBilinear;
Rectangle oRectangle = new Rectangle(0, 0, twidth, theight);
g.DrawImage(imgOutput, oRectangle);
try
{
return (Bitmap)oThumbNail;
}
catch (Exception ex)
{
return null;
}
finally
{
imgOutput.Dispose();
imgOutput = null;
MyBrowser.Dispose();
MyBrowser = null;
}
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;namespace DMS.Client.Command
{
public class GetImage
{
private int S_Height;
private int S_Width;
private int F_Height;
private int F_Width;
private string HTML; public int ScreenHeight
{
get { return S_Height; }
set { S_Height = value; }
} public int ScreenWidth
{
get { return S_Width; }
set { S_Width = value; }
} public int ImageHeight
{
get { return F_Height; }
set { F_Height = value; }
} public int ImageWidth
{
get { return F_Width; }
set { F_Width = value; }
} public string WebSite
{
get { return HTML; }
set { HTML = value; }
} public GetImage(string WebSite, int ScreenWidth, int ScreenHeight, int ImageWidth, int ImageHeight)
{
this.WebSite = WebSite;
this.ScreenWidth = ScreenWidth;
this.ScreenHeight = ScreenHeight;
this.ImageHeight = ImageHeight;
this.ImageWidth = ImageWidth;
} public Bitmap GetBitmap()
{
WebPageBitmap Shot = new WebPageBitmap(this.WebSite, this.ScreenWidth, this.ScreenHeight);
Shot.GetIt();
Bitmap Pic = Shot.DrawBitmap(this.ImageHeight, this.ImageWidth);
return Pic;
}
} class WebPageBitmap
{
WebBrowser MyBrowser;
string HTML;
int Height;
int Width; public WebPageBitmap(string html, int width, int height)
{
this.Height = height;
this.Width = width;
this.HTML = html;
MyBrowser = new WebBrowser();
MyBrowser.ScrollBarsEnabled = false;
MyBrowser.Size = new Size(this.Width, this.Height);
} public void GetIt()
{
MyBrowser.DocumentText = HTML;
//也可用rul
//MyBrowser.Navigate(@"C:\Documents and Settings\Administrator\桌面\1.html");
while (MyBrowser.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
System.Threading.Thread.Sleep(100);
}
} public Bitmap DrawBitmap(int theight, int twidth)
{
Bitmap myBitmap = new Bitmap(Width, Height);
Rectangle DrawRect = new Rectangle(0, 0, Width, Height);
MyBrowser.DrawToBitmap(myBitmap, DrawRect);
System.Drawing.Image imgOutput = myBitmap;
System.Drawing.Image oThumbNail = new Bitmap(twidth, theight, imgOutput.PixelFormat);
Graphics g = Graphics.FromImage(oThumbNail);
g.CompositingQuality = CompositingQuality.HighSpeed;
g.SmoothingMode = SmoothingMode.HighSpeed;
g.InterpolationMode = InterpolationMode.HighQualityBilinear;
Rectangle oRectangle = new Rectangle(0, 0, twidth, theight);
g.DrawImage(imgOutput, oRectangle);
try
{
return (Bitmap)oThumbNail;
}
catch (Exception ex)
{
return null;
}
finally
{
imgOutput.Dispose();
imgOutput = null;
MyBrowser.Dispose();
MyBrowser = null;
}
}
}
}
解决方案 »
- vs2010+c#+winform作一个触摸屏的软件,怎样防止用户操作时回到Windows 桌面?请前辈指导!
- 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
- 可不可以只是序列化类的某几个成员?
- 能不能用ODP.NET操作SQL数据库???
- 请问谁做过WEB请求的程序!
- 一个排序的问题
- 求助:RowFilter 的 field name 有空格时过滤不起作用,如何解决?
- C#两种修改SQL里图片十六进制的转化问题!
- webBrowser如何循环绑定打开网页?
- 菜单的问题(高手请进)
- winform求助,计时器滚动5秒(上限引用之前的全局变量)然后停止,再显示之前的结果变量(多个,每次一个不重复)停留2秒,重复运行,到1分钟后自动结束
- 希望表中的记录顺序保持原顺序不变,该怎么弄呢
System.Drawing.Bitmap bp = thumb.GetBitmap();
string path = Application.StartupPath + "\\aaa";
if (!System.IO.Directory.Exists(path))
System.IO.Directory.CreateDirectory(path);
string name = orderCode + "(" + DateTime.Now.ToString("yyyyMMdd") + ").jpg";
imgPath = path + "\\" + name;
bp.Save(imgPath);// GetImage(imgPath);
}