You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
2.5 KiB

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