我有c#winform应用程序。
我想打印所有表单对象,标签,文本框等。
捕获屏幕不适合我,因为我的表单有滚动。
我该怎么做?
感谢。
答案 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等报表生成器也是常见的解决方案。