打印winform屏幕

时间:2010-11-08 07:53:05

标签: c# winforms

我有c#winform应用程序。

我想打印所有表单对象,标签,文本框等。

捕获屏幕不适合我,因为我的表单有滚动。

我该怎么做?

感谢。

3 个答案:

答案 0 :(得分:3)

答案 1 :(得分:2)

试试这个会形成你的形式`

的位图
 Bitmap b = new Bitmap(this.Bounds.Width, this.Bounds.Height);
 this.DrawToBitmap(b, new Rectangle(0,0,this.Width,this.Height));
 b.Save("C:\\a.bmp");`

通过这张图片你也可以打印而不是保存它......

答案 2 :(得分:2)

这不起作用。无论如何,这是非常不合适的,打印机的分辨率很多比屏幕的分辨率更好。屏幕截图在纸面上看起来非常难看,特别是文字变得斑驳,抗锯齿像素变得非常明显。

咬住子弹并将PrintDocument组件放在表单上。您通常需要在PrintPage事件处理程序中编写大量代码。但它不是硬代码,它看起来很棒,你可以让它看起来像你想要的那样。一定要让它看起来像一个报告,而不是截图。使用PrintPreviewDialog可以避免浪费大量纸张。 RDLC和Crystal Reports等报表生成器也是常见的解决方案。