c#窗口打印
各位大師,有對c# winform程序 打印熟悉的嗎?
我希望可以直接打印窗口,而不想另外生產報表再來打印,並可以設置橫堅向的打印方式.
------解决方案--------------------{//实现C#打印窗体 private Button printButton = new Button(); private PrintDocument printDocument1 = new PrintDocument(); public Form1() { printButton.Text = "Print Form"; printButton.Click += new EventHandler(printButton_Click); printDocument1.PrintPage += new PrintPageEventHandler(printDocument1_PrintPage); this.Controls.Add(printButton); } void printButton_Click(object sender, EventArgs e) { CaptureScreen(); printDocument1.Print(); } //实现C#打印窗体 Bitmap memoryImage; private void CaptureScreen() { Graphics myGraphics = this.CreateGraphics(); Size s = this.Size; memoryImage = new Bitmap(s.Width, s.Height, myGraphics); Graphics memoryGraphics = Graphics.FromImage(memoryImage); memoryGraphics.CopyFromScreen( this.Location.X, this.Location.Y, 0, 0, s); } private void printDocument1_PrintPage(System.Object sender, System.Drawing.Printing.PrintPageEventArgs e) { e.Graphics.DrawImage(memoryImage, 0, 0); } //实现C#打印窗体 public static void Main() { Application.Run(new Form1()); } }
------解决方案--------------------
http://developer.51cto.com/art/200908/146909.htm
------解决方案--------------------
C# code
1. using System;
2. using System.Windows.Forms;
3. using System.Drawing;
4. using System.Drawing.Printing;
5.
6. public class Form1 :
7. Form
8. {//实现C#打印窗体
9. private Button printButton = new Button();
10. private PrintDocument printDocument1 = new PrintDocument();
11.
12. public Form1()
13. {
14. printButton.Text = "Print Form";
15. printButton.Click += new EventHandler(printButton_Click);
16. printDocument1.PrintPage +=
17. new PrintPageEventHandler(printDocument1_PrintPage);
18. this.Controls.Add(printButton);
19. }
20.
21. void printButton_Click(object sender, EventArgs e)
22. {
23. CaptureScreen();
24. printDocument1.Print();
25. }
26. //实现C#打印窗体
27. Bitmap memoryImage;
28.
29. private void CaptureScreen()
30. {
31. Graphics myGraphics = this.CreateGraphics();
32. Size s = this.Size;
33. memoryImage = new Bitmap(s.Width, s.Height, myGraphics);
34. Graphics memoryGraphics = Graphics.FromImage(memoryImage);
35. memoryGraphics.CopyFromScreen(
36. this.Location.X, this.Location.Y, 0, 0, s);
37. }
38.
39. private void printDocument1_PrintPage(System.Object sender,
40. System.Drawing.Printing.PrintPageEventArgs e)
41. {
42. e.Graphics.DrawImage(memoryImage, 0, 0);
43. }
44.
45. //实现C#打印窗体
46.
47. public static void Main()
48. {
49. Application.Run(new Form1());
50. }
51. }
------解决方案--------------------