Ini ialah postingan berkelanjutan jadi baca juga postingan sebelumnya: Mengenal Komponen PrintDocument Mengatur Font Printing Mengatur Jarak Antar Baris secara Otomatis Kita mau lanjut dari artikel sebelumnya. Tapi pertama-tama kita akan coba mengerti tentang Alignment dan bagaimana cara kerja nya. Alignment ada horizontal dan vertikal. Jika dikombinasikan antara rata kiri, kanan dan tengah maka akan ada 9 jenis yaitu: - Atas Kiri - Atas Tengah - Atas Kanan - Tengah Kiri - Tengah Tengah - Tengah Kanan - Bawah Kiri - Bawah Tengah - Bawah Kanan Masih menggunakan yang serupa: Kombinasi alignment ini disimpan dalam object StringFormat. Kita akan mendeklarasikan 9 jenis StringFormat ini ke dalam 9 object mirip berikut: Dim TopLeft As StringFormat = New StringFormat () Dim TopCenter As StringFormat = New StringFormat () Dim TopRight As StringFormat = New StringFormat () Dim MidLeft As StringFormat = New StringFormat () Dim MidCenter As StringFormat = New StringFormat () Dim MidRight As StringFormat = New StringFormat () Dim BottomLeft As StringFormat = New StringFormat () Dim BottomCenter As StringFormat = New StringFormat () Dim BottomRight As StringFormat = New StringFormat () Kemudian kita atur format saat event Form1_Load() Private Sub Form1_Load(sender As Object , e As EventArgs ) Handles MyBase .Load TopLeft.LineAlignment = StringAlignment .Near TopLeft.Alignment = StringAlignment .Near TopCenter.LineAlignment = StringAlignment .Near TopCenter.Alignment = StringAlignment .Center TopRight.LineAlignment = StringAlignment .Near TopRight.Alignment = StringAlignment .Far MidLeft.LineAlignment = StringAlignment .Center MidLeft.Alignment = StringAlignment .Near MidCenter.LineAlignment = StringAlignment .Center MidCenter.Alignment = StringAlignment .Center MidRight.LineAlignment = StringAlignment .Center MidRight.Alignment = StringAlignment .Far BottomLeft.LineAlignment = StringAlignment .Far BottomLeft.Alignment = StringAlignment .Near BottomCenter.LineAlignment = StringAlignment .Far BottomCenter.Alignment = StringAlignment .Center BottomRight.LineAlignment = StringAlignment .Far BottomRight.Alignment = StringAlignment .Far End Sub Untuk melihat perbedaannya lebih jelas kita coba format ini satu per satu yah. Bagian dengan warna kuning adalah yang mau Rani ubah untuk sample selanjutnya. Private Sub PrintDocument1_PrintPage(sender As Object , e As Printing. PrintPageEventArgs ) _ Handles PrintDocument1.PrintPage Dim CurX As Integer = 50 Dim CurY As Integer = 50 Dim iWidth As Integer = 500 Dim cellRect As RectangleF cellRect = New RectangleF () cellRect.Location = New Point (CurX, CurY) cellRect.Size = New Size (iWidth, CurY + 25) e.Graphics.DrawString( "Top Left" , Font, Brushes .Black, cellRect, TopLeft ) e.Graphics.DrawRectangle( Pens .Black, Rectangle .Round(cellRect)) End Sub Jangan lupa event button click untuk mentrigger proses printing. Private Sub Button1_Click(sender As Object , e As EventArgs ) _ Handles Button1.Click PrintDocument1.Print() End Sub Kita coba run dan print: Hasil print sebagai berikut: Kita coba format yang lain, buah bagian baris DrawString nya saja dan run. e.Graphics.DrawString( "Top Center" , Font, Brushes .Black, cellRect, TopLeft ) e.Graphics.DrawString( "Top Right" , Font, Brushes .Black, cellRect, TopLeft ) e.Graphics.DrawString( "Middle Left" , Font, Brushes .Black, cellRect, TopLeft ) e.Graphics.DrawString( " Middle Center" , Font, Brushes .Black, cellRect, TopLeft ) e.Graphics.DrawString( " Middle Right " , Font, Brushes .Black, cellRect, TopLeft ) e.Graphics.DrawString( "Bottom Left" , Font, Brushes .Black, cellRect, TopLeft ) e.Graphics.DrawString( " Bottom Center" , Font, Brushes .Black, cellRect, TopLeft ) e.Graphics.DrawString( " Bottom Right" , Font, Brushes .Black, cellRect, TopLeft ) Sekarang kita implementasikan pada function yang kita buat pada postingan sebelum nya . Rani akan menambahkan format pada parameter function, bab yang diubah diwarnai kuning. Public Function PrintCellText( ByVal strValue As String , ByVal x As Integer , ByVal y As Integer , _ ByVal w As Integer , _ ByVal e As System.Drawing.Printing. PrintPageEventArgs , _ ByVal Font As Font , ByVal Format As StringFormat ) As Integer Dim cellRect As RectangleF = New RectangleF() cellRect.Location = New Point(x, y) cellRect.Size = New Size(w, CInt(e.Graphics.MeasureString(strValue, Font, w, StringFormat.GenericTypographic).Height)) e.Graphics.DrawString(strValue, Font, Brushes.Black, cellRect , Format ) Return y + cellRect.Size.Height End Function Ukuran vertikal dari rectangle pada function di atas otomatis menyesuaikan dengan banyak aksara pada teks yang akan dicetak, sementara panjang kesamping (width) diputuskan manual lewat parameter w. Karena itu dalam fungsi ini penggunaan alignment cuma akan tampak secara horizontal dan saya akan pakai alignment top untuk vertikal. Event PrintPage kita ubah selaku berikut: Private Sub PrintDocument1_PrintPage(sender As Object , e As Printing. PrintPageEventArgs ) _ Handles PrintDocument1.PrintPage Dim CurX As Integer = 50 Dim CurY As Integer = 50 Dim iWidth As Integer = 500 CurY = PrintCellText( "Align Left Text." , CurX, CurY, iWidth, e, fnt, TopLeft) CurY = PrintCellText( "Align Center Text." , CurX, CurY, iWidth, e, fnt, TopCenter) CurY = PrintCellText( "Align Right Text." , CurX, CurY, iWidth, e, fnt, TopRight) End Sub Kita run kemudia print, akibatnya sebagai berikut: Vertical alignment akan lebih tampakfungsi nya ketika kita membuat layout report yang lebih kompleks dan report berbentuktabel yang akan kita diskusikan pada postingan selanjutnya . Sumber http://rani-irsan.blogspot.com
pop
Rabu, 19 Agustus 2020
Langganan:
Posting Komentar (Atom)
EmoticonEmoticon