
C# Winform里面,传入html源码,假设传入的一个table,里面包括若干行,若干列。
现在要将传入的html在纸张上打印出来,打印的效果要与此html在页面上显示的结果一样,包括字体大小,颜色等,这个如何实现?...
现在要将传入的html在纸张上打印出来,打印的效果要与此html在页面上显示的结果一样,包括字体大小,颜色等,这个如何实现?
展开
展开全部
AxWebBrowser+GDI截图
先用AxWebBrowser解释html代码(当然不能再窗体嵌入,在代码用new创建),然后进行截图传入程序,程序打印图片即可...
先用AxWebBrowser解释html代码(当然不能再窗体嵌入,在代码用new创建),然后进行截图传入程序,程序打印图片即可...
追问
你好,是不是根据页面的url地址,后台用AxWebBrowser加载url,获得内容,然后把需要的内容读取出来,生成图片打印?
假如url=www.baidu.com,我只要打印下图中的红色方框里的内容,方框里的内容有可能会有很多,要考虑分页打印,这个如何处理? 比如可以在页面里要打印区域的html源码中前后加上开始和结束标记。 这样的需要能实现么? 能不能给个例子,就打印下面的红方块里的内容,非常感谢!!!
追答
private void button1_Click(object sender, EventArgs e)
{
WebBrowser webBrowser1 = new WebBrowser();
webBrowser1.DocumentCompleted += webBrowser1_DocumentCompleted;
webBrowser1.Url = new Uri("http://www.baidu.com");
}
void webBrowser1_DocumentCompleted(object sender, EventArgs e)
{
int x = 118; int y = 148; int w = 621; int h = 81;
((WebBrowser)sender).Size = new Size(879, 270);
Bitmap bmp = new Bitmap(879, 270); Bitmap buffer = new Bitmap(w, h);
((WebBrowser)sender).DrawToBitmap(bmp, new Rectangle(Point.Empty, new Size(879, 270)));
pictureBox1.Image = bmp;
using (Graphics g = Graphics.FromImage(buffer))
g.DrawImage(bmp, new Rectangle(0,0, w, h),new Rectangle(x,y,w,h),GraphicsUnit.Pixel);
pictureBox1.Image = buffer;
}
多页显示要用GDI分隔,就如上面那样分隔,具体用法:
g.DrawImage(要分隔的图片,new Rectangle(0,0,图片宽, 图片高),new Rectangle(0,0,图片宽,图片高/2),GraphicsUnit.Pixel);//图片高/2表示分两页显示...如此类推...
展开全部
你在winform里嵌入一个Web Browser就可以了嘛
更多追问追答
追问
不能嵌入,只能读取html源码
追答
那太恼火了。。还要自己去解析html
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Web Browser控件
追问
具体怎么操作?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询