怎么将Windows窗口显示的内容用打印机打印出来 我正想做一个单据设计器,用户可以自己设计单据格式,设计完毕后用户可以将设计好的单据打印出来。请问这里将Windows 窗口显示的内容从打印机打印出来呢,请高手给个思路 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 建一个printdocument对象,然后在里面画,如果要打印窗口显示的图像的话,可以通过取窗口的dc句柄,再将其直接画入printdocument对象中 private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { //获得绘制的对象 Graphics g=e.Graphics; //以页中的行数 float linepage=0; //待绘制文本的纵向座标 float yposition=0; //行计数 int count=0; //左边界 float leftmargin=e.MarginBounds.Left; //顶边界 float topmargin=e.MarginBounds.Top; //字符串流 string lines=null; //根据页面的高度和字体的高度计算一页中可以打印的行数 linepage=e.MarginBounds.Height/this.Font.GetHeight(g); //每次从字符串流中读取一行并打印 while(count<linepage&&((lines=this.richTextBox1.Text)!=null)) { //计算这一行显示的位置 yposition=topmargin+(count*this.Font.GetHeight(g)); //绘制文本 g.DrawString(lines,this.Font,System.Drawing.Brushes.Black,leftmargin,yposition,new StringFormat()); count++; } //如果有多行则打印多页 if(lines!=null) { e.HasMorePages=true; } else { e.HasMorePages=false; } } 使用Form.DrawToBitmap 然后在PrintDocument里直接 去绘制获取的Bitmap http://topic.csdn.net/u/20080229/18/ecf18e31-6c5e-427d-83a3-88d8d43596bf.html有人问过了。 问题解决了,下面是一个打印控件的类,类很好,很强大,相当好用。http://www.codeproject.com/KB/printing/PrintingFormReport.aspx 大家好,请教一个多线程的问题 局域网内复制文件 ???请问如何在界面添加 小方格并显示相关信息 ??? listview增加一行时闪烁怎么解决啊?还有就是增选一行滚动条自动往下滚怎么做? C#验证时间代码 界面弹出 简单 正则表达式 求教 问个问题,为什么我现在打不开vs.net,提示“出现未能加载DTE.olb,请重新运行安装程序修复安装 ” 如何获取本机 IP ? 数组问题~! 皮肤控件的bug 程序无法正常退出的问题?
{
//获得绘制的对象
Graphics g=e.Graphics;
//以页中的行数
float linepage=0;
//待绘制文本的纵向座标
float yposition=0;
//行计数
int count=0;
//左边界
float leftmargin=e.MarginBounds.Left;
//顶边界
float topmargin=e.MarginBounds.Top;
//字符串流
string lines=null;
//根据页面的高度和字体的高度计算一页中可以打印的行数
linepage=e.MarginBounds.Height/this.Font.GetHeight(g);
//每次从字符串流中读取一行并打印
while(count<linepage&&((lines=this.richTextBox1.Text)!=null))
{
//计算这一行显示的位置
yposition=topmargin+(count*this.Font.GetHeight(g));
//绘制文本
g.DrawString(lines,this.Font,System.Drawing.Brushes.Black,leftmargin,yposition,new StringFormat());
count++;
}
//如果有多行则打印多页
if(lines!=null)
{
e.HasMorePages=true;
}
else
{
e.HasMorePages=false;
}
}