版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
winfrom 连接打印机 获取打印机名字 并且指定打印机打印
1.添加控件
添加4个控件并且把pageSetupDialog,PrinDialog,PrintPreviewDialog的Document属性绑定为PrintDocument1
2.代码
private void PrintDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
//打印内容 为 整个Form
//Image myFormImage;
//myFormImage = new Bitmap(this.Width, this.Height);
//Graphics g = Graphics.FromImage(myFormImage);
//g.CopyFromScreen(this.Location.X, this.Location.Y, 0, 0, this.Size);
//e.Graphics.DrawImage(myFormImage, 0, 0);
//打印内容 为 局部的 this.panel1
Bitmap _NewBitmap = new Bitmap(panel1.Width - 2, panel1.Height - 20);
panel1.DrawToBitmap(_NewBitmap, new Rectangle(0, 0, _NewBitmap.Width, _NewBitmap.Height));
e.Graphics.DrawImage(_NewBitmap, 0, 0, _NewBitmap.Width, _NewBitmap.Height);
//打印内容 为 自定义文本内容
//Font font = new Font("宋体", 12);
//Brush bru = Brushes.Blue;
//for (int i = 1; i <= 5; i++)
//{
// e.Graphics.DrawString("Hello world ", font, bru, i * 20, i * 20);
//}
}
/// <summary>
/// 打印预揽
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Button3_Click(object sender, EventArgs e)
{
this.printPreviewDialog1.ShowDialog();
}
/// <summary>
/// 打印设置
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Button2_Click(object sender, EventArgs e)
{
this.pageSetupDialog1.ShowDialog();
}
/// <summary>
/// 打印
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Button1_Click(object sender, EventArgs e)
{
string pkInstalledPrinters ="";
using (PrintDocument pd = new PrintDocument())
{
for (i = 0; i < PrinterSettings.InstalledPrinters.Count; i++) //开始遍历打印机
{
pkInstalledPrinters = PrinterSettings.InstalledPrinters[i]; //取得名称
//自己选择一个打印机名字
}
}
printDocument1.PrinterSettings.PrinterName = pkInstalledPrinters;
this.printDocument1.Print();
}