Ini merupakan artikel berkelanjutan jadi baca juga artikel 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 memahami 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 sama:
Kombinasi alignment ini disimpan dalam object StringFormat. Kita akan mendeklarasikan 9 jenis StringFormat ini ke dalam 9 object seperti 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 akan 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 lainnya, 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 artikel sebelum nya.
Rani akan menambahkan format pada parameter function, bagian 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 karakter pada teks yang akan dicetak, sementara panjang kesamping (width) ditentukan manual melalui parameter w. Karena itu dalam fungsi ini penggunaan alignment hanya akan tampak secara horizontal dan saya akan pakai alignment top untuk vertikal. Event PrintPage kita ubah sebagai 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, hasilnya sebagai berikut:
Vertical alignment akan lebih terlihat fungsi nya saat kita membuat layout report yang lebih kompleks dan report berupa tabel yang akan kita bahas pada artikel selanjutnya.
- Home
- Tutorial Bahasa Indonesia
- _Visual Basic 6 (VB6)
- __VB6 Basic & General
- __VB6 MySQL
- _Visual Basic .NET
- __VB.NET Basic & General
- __VB.NET Ms Access
- __VB.NET MySQL
- __VB.NET Printing
- _ASP.NET
- _C#
- _PHP
- _Flutter
- _MySQL
- _SQL Server
- _SQL Reporting (SSRS)
- English Tutorial
- Youtube Channel
- About Me
- _About Me and This Blog
- _Stories Of Life
- _Portofolio
1 Comments
lebar 500 itu satuan nya apa ya mbak ? mm, px, inch, atau cm ? lebar kertas ku 58 mm mbak