怎么将Windows窗口显示的内容用打印机打印出来

鸣宇淳
博客专家认证
2009-05-20 10:39:44
我正想做一个单据设计器,用户可以自己设计单据格式,设计完毕后用户可以将设计好的单据打印出来。
请问这里将Windows 窗口显示的内容从打印机打印出来呢,请高手给个思路
...全文
146 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
linlusheng 2009-06-02
  • 打赏
  • 举报
回复
不是都说用水晶报表的啊
wzuomin 2009-06-02
  • 打赏
  • 举报
回复
不错,总结了这么多方法,呵呵。
有空去试试看喽
鸣宇淳 2009-06-02
  • 打赏
  • 举报
回复
问题解决了,下面是一个打印控件的类,类很好,很强大,相当好用。

http://www.codeproject.com/KB/printing/PrintingFormReport.aspx
光宇广贞 2009-05-22
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20080229/18/ecf18e31-6c5e-427d-83a3-88d8d43596bf.html

有人问过了。
hangang7403 2009-05-21
  • 打赏
  • 举报
回复
up
zgke 2009-05-21
  • 打赏
  • 举报
回复
使用Form.DrawToBitmap 然后在PrintDocument里直接 去绘制获取的Bitmap
wuyujie1219 2009-05-21
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 tanxiaolin520 的回复:]
C# codeprivate void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
//获得绘制的对象
Graphics g=e.Graphics;
//以页中的行数
float linepage=0;
//待绘制文本的纵向座标
float yposition=0;
//行计数
int count=0;
//左边界
float…
[/Quote]

学习了...
tanxiaolin520 2009-05-21
  • 打赏
  • 举报
回复
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;
}
}
缥缈大木头 2009-05-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 uncleson88 的回复:]
建一个printdocument对象,然后在里面画,如果要打印窗口显示的图像的话,可以通过取窗口的dc句柄,再将其直接画入printdocument对象中
[/Quote]
学习
uncleson88 2009-05-20
  • 打赏
  • 举报
回复
建一个printdocument对象,然后在里面画,如果要打印窗口显示的图像的话,可以通过取窗口的dc句柄,再将其直接画入printdocument对象中
LemIST 2009-05-20
  • 打赏
  • 举报
回复

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧