winfrom 连接打印机 获取打印机名字 并且指定打印机打印

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_40338997/article/details/85327063

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();
        }

猜你喜欢

转载自blog.csdn.net/qq_40338997/article/details/85327063