samuelsimanungkalit. Powered by Blogger.

Tutorial Mencetak Form di C# (Tanpa Crystal Report)

selamat gini hari rekan – rekan programmer semuanya. :)
biasanya dalam pembuatan aplikasi penjualan pasti ada fungsi untuk mencetak form atau salah satu bagian dari form tersebut (misal : id_pemesan, nama, harga, bla,bla,bla). dan kebanyakan programmer menggunakan crystal report sebagai library tambahan agar dapat mempermudah tugasnya. namun kali ini saya tidak akan membeberkan bagaimana mencetak form menggunakan library Crytal Report, tapi menggunakan reference yang sudah build-in di .Net. apa itu? penasaran kan? yuk kita lihat aja langkah – langkahnya.


1. tambahkan baris kode di bawah ini di bagian constructor (paling atas sendiri)
1
2
using System.Drawing.Printing;
using System.IO;
2. tambahkan baris kode dibawah ini dengan struktur seperti contoh :
1
2
3
4
5
6
7
8
9
10
namespace testing
{
    /// <summary>
    /// Description of nama_form_agan.
    /// </summary>
    public partial class nama_form_agan : Form
    {
        //nah kode di bawah ini yang wajib ada ya.
        PrintDocument printdocument1 = new PrintDocument();
        
3. buatlah function seperti dibawah ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            Font objFont=new Font ("Microsoft Sans Serif", 10F);//sets the font type and size
            float fTopMargin = e.MarginBounds.Top;
            float fLeftMargin = 50;//sets left margin
            float fRightMargin = e.MarginBounds.Right - 150;//sets right margin  
            string employee_id = String.Concat("ID Faktur Pemesanan :  ", txtId.Text);
            string employee_name = String.Concat("Nama Pemesan :  ", txt_nama.Text);
            string jenis_coral = String.Concat("Jenis Terumbu :  ", cmb_jenis_coral.SelectedItem.ToString());
            string harga = string.Concat("Harga Terumbu :  ", txt_harga.Text);
            string uang_muka = string.Concat("Harga Terumbu :  ", txt_uang.Text);
            e.Graphics.DrawString(employee_id, objFont, Brushes.Black, fLeftMargin, fTopMargin);
                         
             fTopMargin += objFont.GetHeight() * 2;//skip two lines
                        
             e.Graphics.DrawString(employee_name, objFont, Brushes.Black, fLeftMargin, fTopMargin);
              
              fTopMargin += objFont.GetHeight() * 2;//skip two lines
              
            e.Graphics.DrawString(jenis_coral, objFont, Brushes.Black, fLeftMargin, fTopMargin);             
             
            fTopMargin += objFont.GetHeight() * 2;//skip two lines
              
            e.Graphics.DrawString(harga, objFont, Brushes.Black, fLeftMargin, fTopMargin); 
            fTopMargin += objFont.GetHeight() * 2;//skip two lines
              
            e.Graphics.DrawString(uang_muka, objFont, Brushes.Black, fLeftMargin, fTopMargin);           
                         
             objFont.Dispose();
                        
             e.HasMorePages = false;
        }
4. nah langkah selanjutnya silakan perhatikan bagian ini pada aplikasi agan dan sista
1
2
3
4
public nama_form_agan()
        {
            InitializeComponent();
        }
5. lalu ubahlah menjadi seperti ini :
1
2
3
4
5
public nama_form_agan()
        {
            InitializeComponent();
            printdocument1.PrintPage +=printDocument1_PrintPage;
        }
6. langkah selanjutnya adalah buatlah sebuah button pada form agan dan beri nama cetak dengan nama button1 atau bebas.
7. double click pada button baru tersebut dan berilah kode ini :
1
2
3
4
5
6
7
8
9
using (PrintDialog pd = new PrintDialog())
            {
                if (pd.ShowDialog() == DialogResult.OK)
                {
                    printdocument1.PrinterSettings = pd.PrinterSettings;
                    printdocument1.Print();
                     
                }
            }
8. Selesai dah… :D
selamat mencoba, apabila ada pertanyaan, sialakan hubungi saya aja, bisa lewat komentar, 

0 komentar