• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C# 实现自己画内容并打印

原作者: [db:作者] 来自: [db:来源] 收藏 邀请


1. 首先在界面中拉入三个控件,右边为panel


2. 界面初始化添加自打印事件,PrintEveryPage函数中添加打印内容

 public FrmPrinter()
        {
            InitializeComponent();
            this.printDocument1.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(this.PrintEveryPage);
        }


 private void PrintEveryPage(object sender, PrintPageEventArgs e)
        {
  int tmpCount = 0;
            int pageHeight = paperSize.Height;
            int pageWidth = paperSize.Width;
            int textStartX = pageMergin.Left;
            int textStartY =pageMergin.Top;
            int txtWidth = pageWidth - pageMergin.Left - pageMergin.Right;
            e.HasMorePages = false;
            Graphics gh = e.Graphics;//获取绘图对象  

    string myStr;
            Pen myPen = new Pen(Color.Black);
            gh.DrawLine(myPen, pageMergin.Left / 2, 40, pageWidth - pageMergin.Right, 40);
            RectangleF rec = new RectangleF(0, 0, pageWidth, pageMergin.Top);
            Font titleFont = new System.Drawing.Font("宋体", (float)15.0, FontStyle.Bold);
            Brush titleBrush = new SolidBrush(Color.Black);
            myStr = "自己画的字符串";
            StringFormat fmt = new StringFormat();
            fmt.LineAlignment = StringAlignment.Center;
            fmt.Alignment = StringAlignment.Center;
            gh.DrawString(myStr, titleFont, titleBrush, rec, fmt);

        }


3.打开预览


 private void bt_scanReport_Click(object sender, EventArgs e)
        {
            PrintPreviewDialog printPreviewDialog1;
            printPreviewDialog1 = new PrintPreviewDialog();
            printPreviewDialog1.TopLevel = false;
            printPreviewDialog1.AllowTransparency = true;
            printPreviewDialog1.Document = this.printDocument1;


            panel1.Controls.Add(printPreviewDialog1);
            Form f = (Form)printPreviewDialog1;
            f.WindowState = FormWindowState.Maximized;
            f.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
            printPreviewDialog1.Show();
        }


4. 打印函数

   private void bt_printReport_Click(object sender, EventArgs e)
        {
            printDialog1.AllowCurrentPage = true;
            printDialog1.AllowSomePages = true;
            printDialog1.AllowPrintToFile = true;
            if (this.printDialog1.ShowDialog() == DialogResult.OK)
            {
                this.printDocument1.Print();
            }
        }


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# 补零发布时间:2022-07-14
下一篇:
C#面向对象思想计算两点之间距离发布时间:2022-07-14
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap