13 June 2016

VB.NET: Mengatur Default Printer


Klo kita membuat aplikasi transaksi yang langsung mengirim data ke printer (print slip) seperti pada aplikasi kasir (POS), aplikasi akan langsung melakukan perintah print/cetak ke default printer sehingga tidak perlu memilih printer lagi saat mencetak slip.

Sebenarnya setting default printer mudah saja dengan masu ke control panel, Device and Printer seperti contoh gambar di bawah ini (window 8). Kita tinggal pilih printer mana yang ingin menjadi default, klik kanan kemudian pilih Set as default printer. Tetapi aplikasi akan lebih user friendly jika default printer dapat langsung di setting dalam aplikasi tersebut.


Karenanya dalam kesempatan kali ini Rani mau buat sebuah contoh code untuk setting printer default dengan code VB.NET.

UI

Code:
Imports System.Drawing.Printing

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, _
                ByVal e As System.EventArgs) Handles MyBase.Load

        Dim strInstalledPrinters As String
        Dim prntDoc As New PrintDocument

        'cek apakah ada printer terinstall
        If PrinterSettings.InstalledPrinters.Count = 0 Then
            MsgBox("No printer installed")
            Exit Sub
        End If


        'tampilkan printer terinstall di list combobox
        For Each strInstalledPrinters In PrinterSettings.InstalledPrinters
            ComboBox1.Items.Add(strInstalledPrinters)
        Next strInstalledPrinters

        'tampilkan default printer saat ini di text combobox
        ComboBox1.Text = prntDoc.PrinterSettings.PrinterName

        Button1.Text = "Set Default Printer"


    End Sub

    'Fungsi untuk mengatur printer sebagai default
    Function SetDefaulPrinter(ByVal strPrinterName As String) As Boolean
        Dim strCurrPrinter As String
       
Dim WsNetwork As Object
       
Dim prntDoc As New PrintDocument

        strCurrPrinter = prntDoc.PrinterSettings.PrinterName
        WsNetwork = Microsoft.VisualBasic.CreateObject("WScript.Network")

        Try
            WsNetwork.SetDefaultPrinter(strPrinterName)
            prntDoc.PrinterSettings.PrinterName = strPrinterName

            'set default jika nama printer valid (terinstall)
            If prntDoc.PrinterSettings.IsValid Then
                Return True
            Else
                WsNetwork.SetDefaultPrinter(strCurrPrinter)
                Return False
            End If

        Catch ex As Exception
            WsNetwork.SetDefaultPrinter(strCurrPrinter)
            Return False
        Finally
            WsNetwork = Nothing
            prntDoc = Nothing
        End Try
    End Function

    Private Sub Button1_Click(ByVal sender As System.Object, _
                ByVal e As System.EventArgs) Handles Button1.Click
        If SetDefaulPrinter(ComboBox1.Text) = True Then
            MsgBox("Printer default menjadi " & ComboBox1.Text)
        Else
            MsgBox("Nama Printer " & ComboBox1.Text & " tidak valid!")
        End If
    End Sub

End Class


Runtime:
List printeryang tersedia (terinstall) akan tampil di list combobox.
Pilih salah satu item list kemudian klik tombo "Set Default Printer"
Kita lihat hasil nya di device and printer, default printer akan berubah sesuai pilihan.


Click here if you like this article.


0 comments: