Imports System.Drawing.Printing Public Class clsPrinter Public Printers As New DataTable Public Papersources As New DataTable Public Function Get_Printers() Printers.Clear() Printers.Columns.Clear() Printers.Columns.Add("Printername") Dim dr1 As DataRow = Printers.NewRow dr1.Item(0) = "Standard" Printers.Rows.Add(dr1) For Each printer As String In PrinterSettings.InstalledPrinters Dim dr As DataRow = Printers.NewRow dr.Item(0) = printer Printers.Rows.Add(dr) Next printer End Function Public Function Get_Papersources(ByVal Printer As String) Papersources.Rows.Clear() Papersources.Columns.Clear() Papersources.Columns.Add("RawKind") Papersources.Columns.Add("Sourcename") Dim pkSource As System.Drawing.Printing.PaperSource Dim printDoc As New System.Drawing.Printing.PrintDocument printDoc.PrinterSettings.PrinterName = Printer For Each pkSource In printDoc.PrinterSettings.PaperSources Dim dr As DataRow dr = Papersources.NewRow dr.Item(0) = pkSource.RawKind dr.Item(1) = pkSource.SourceName Papersources.Rows.Add(dr) Next End Function Public Function Get_DefaultPrinter() As String Dim oPS As New System.Drawing.Printing.PrinterSettings Return oPS.PrinterName End Function Public Function Set_DefaultPrinter(ByVal Printername As String) As Boolean Try Dim a As New Printing.PageSettings() a.PrinterSettings.PrinterName = Printername Shell(String.Format("rundll32 printui.dll,PrintUIEntry /y /n ""{0}""", Printername)) Catch ex As Exception Return False End Try End Function Public Function Get_Printersettings(ByVal Reportnr As Integer, ByRef printername As String, ByRef Papierschacht As String) Dim db As New clsDB db.Get_Tabledata("Auswertung", " where auswertungnr=" + Reportnr.ToString) Try printername = db.dsDaten.Tables(0).Rows(0).Item("Drucker") If printername = "Standard" Or printername = "" Then printername = Get_DefaultPrinter() Catch printername = Get_DefaultPrinter() End Try Try Papierschacht = db.dsDaten.Tables(0).Rows(0).Item("Papierschacht") Catch Papierschacht = "" End Try End Function End Class