آموزش پرینت و چاپ در سی شارپ

جمعه 9 مرداد 1394

در این مقاله قصدداریم به نحوه چاپ و پرینت در سی شارپ بپردازیم

آموزش پرینت و چاپ در سی شارپ

در این پارت از آموزش میخواهیم برای یک پایانه اتوبوس رانی یک  برنامه بنویسیم که اسم راننده و باقی اطلاعات را به صورت یک بلیط برای مسافر چاپ کرده و به آن نشان دهد

برای شروع ویژوال استادیو را باز کرده و یک پروژه از نوع Windows Form  ایجاد میکنیم

حال فضای نام زیر را به برنامه اضافه کنید

    using System.Drawing.Printing;  

حال فرم خود را  مانند زیر طراحی میکنیم.

حال یک نمونه از  کلاس print document به نام   pd ایجاد میکنیم

این کلاس برای ترسیم یک سند و یا ارسال محتوا به یک سند کارایی دارد.


    PrintDocument pd = new PrintDocument();  

حال برای تعین سایز صفحه نیاز داریم از کلاس PaperSize  استفاده کنیم.

PaperSize ps = new PaperSize("", 420, 540); 

حال یک متد به نام pd.PrintPage ایجاد میکنیم


    pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);  
      
    void pd_PrintPage(object sender, PrintPageEventArgs e)  
    {  
       ‘’ write your code  
    }  

حال یک شی از کلاس graphics ایجاد میکنیم  این کلاس برای ترسیم در سی شارپ کاربرد دارد.

Graphics g = e.Graphics;  

حال  با فراخوانی متد  DrawRectangle میتوانیم نمایی از بلیط را درسی شارپ طراحی کنیم.

g.DrawRectangle(Pens.Black,5,5,410,530);  

حال برای اضافه کردن لوگو در قسمت بالای بلیط از کد زیر استفاده میکنیم.


    string title = Application.StartupPath+"\\CBT_Title.png";  
    g.DrawImage(Image.FromFile(title),50,7);  

برای تعین نوع و اندازه و رنگ فونت از کد زیر استفاده میکنیم.


    Font fBody = new Font("Lucida Console", 15, FontStyle.Bold);  
    SolidBrush sb = new SolidBrushColor.Black);  

حال برای نوشتن در بلیط از قطعه کد زیر استفاده میکنیم


  g.DrawString("-------------------------------",fBody1,sb, 10, 120);

            g.DrawString("تاریخ  :", fBody,sb, 10, SPACE);
            g.DrawString(DateTime.Now.ToShortDateString(), fBody1, sb, 90, SPACE);

            g.DrawString("ساعت حرکت :", fBody, sb, 10, SPACE+30);
            g.DrawString(DateTime.Now.ToShortTimeString(), fBody1, sb, 90, SPACE + 30);

            g.DrawString("شماره بلیط.:", fBody, sb, 10, SPACE+60);
            g.DrawString("", fBody1, sb, 120, SPACE + 60);

            g.DrawString("شماره اتوبوس.:", fBody, sb, 10, SPACE+90 );
            g.DrawString(txtBusNo.Text, fBody1, sb, 100, SPACE + 90);

حال برای آن که تعداد بلیط ها به صورت رندم تولید بشوند  یک شی از کلاس Random ایجاد کرده  و در متد Next  تعداد حالات رندم را به آن میدهیم و همچنین برای استفاده از بارکد برای بلیط از کد زیر استفاده میکنیم


    Random RandomNumber = new Random();  
    int no = RandomNumber.Next(1000, 9999);   
    Image imgBarcode = BarcodeLib.Barcode.DoEncode(BarcodeLib.TYPE.CODE128, no.ToString(),true,Color.Black,Color.White,200,60);  
    g.DrawImage(imgBarcode, 10, SPACE + 240);  

حال میتوانیم تعداد اطلاعات برای چاپ روی بلیط را اضافه کنیم.


    g.DrawString("TicketNo.:", fBody, sb, 10, SPACE+60);  
    g.DrawString(no.ToString(), fBody1, sb, 150, SPACE + 60);  
    g.DrawString("BusNo.:", fBody, sb, 10, SPACE+90 );  
      
    g.DrawString(txtBusNo.Text, fBody1, sb, 100, SPACE + 90);  
    g.DrawString("Route:", fBody, sb, 10, SPACE+120);  
    g.DrawString(cbRoute.SelectedItem.ToString(), fBody1, sb, 100, SPACE + 120);  
    int price = Convert.ToInt32(txtMember.Text) * Convert.ToInt32(txtPrice.Text);  
    string price1=txtMember.Text +" X "+ txtPrice.Text +" = "+price.ToString();  
    g.DrawString("Full:", fBody, sb, 10, SPACE+150);  
    g.DrawString(price1, fBody1, sb, 80, SPACE + 150);  
    g.DrawString("Rs."+price.ToString()+".00", rs, sb, 10, SPACE + 180);  
    g.DrawString(TType,fTType, sb, 230, 120);  
    g.DrawString("HelplineNo.: +91 9999999999", fBody2,sb, 15, 465);  
    g.DrawString("* NOT TRANSFERABLE", fBody2, sb, 15, 485);  
    g.Dispose();  

حال برای تنظیم حاشیه از سمت راست و چپ از کد های زیر استفاده میکنیم


    pd.PrintController = new StandardPrintController();  
      
    pd.DefaultPageSettings.Margins.Left = 0;  
    pd.DefaultPageSettings.Margins.Right = 0;  
    pd.DefaultPageSettings.Margins.Top = 0;  
    pd.DefaultPageSettings.Margins.Bottom = 0;  
    pd.DefaultPageSettings.PaperSize = ps;  
    pd.Print();  

آموزش سی شارپ

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان
  • C#.net
  • 24k بازدید
  • 37 تشکر

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید