(68)C#打印机

https://docs.microsoft.com/zh-cn/dotnet/api/?view=netframework-4.8&term=System.Drawing.Printing

System.Drawing.Printing下得用来完成打印功能

事件BeginPrint:在调用Print方法后,在打印文档的第一页之前发生。

  一般设置在打印时所有页的相同属性或共用的资源,例如所有页共同使用的字体、建立要打印的文件流等

事件PrintPage:需要打印新的一页时发生。

  处理函数负责打印一页数据

事件EndPrint:在文档的最后一页打印后发生。

  处理函数进行打印善后工作

一、普通打印

            //打印
            PrintDocument printDocument = new PrintDocument();
            printDocument.PrintPage += new PrintPageEventHandler(PrintSetting);
            printDocument.Print();

调用事件

        private void PrintSetting(object sender, PrintPageEventArgs e)
        {

            float x1 = 20;//起始x
            float y1 = 35;//起始y
            //偏移量
            float x_offset = 10;
            float y_offset = 20;

            //用户自定义偏移量调整
            //float x_offset_adjust=0;
            //赋值
            //x1 = x1 + x_offset_adjust;

            //设置字体
            Font fntTxt = new Font("宋体", 10, FontStyle.Regular);
            Font fntTxtSmall = new Font("宋体", 5.5F, FontStyle.Regular);
            Brush brush = new SolidBrush(Color.Black);
            string lupi = "19120452";//"19120452";

            //字体
            e.Graphics.DrawString(lupi, fntTxt, brush, new PointF(x1, y1));

            //打印二维码图片
            e.Graphics.DrawImage(img, x1+40, y1-30);
        }

二、打印设置

三、页面设置

四、打印预览

            PrintPreviewDialog printPreviewDialog = new PrintPreviewDialog();
            printPreviewDialog.Show();
原文地址:https://www.cnblogs.com/buchizaodian/p/11652742.html