update 20241225
This commit is contained in:
309
Plugin_Printersettings/frmPrinterSettings.vb
Normal file
309
Plugin_Printersettings/frmPrinterSettings.vb
Normal file
@@ -0,0 +1,309 @@
|
||||
Imports System.Drawing.Printing
|
||||
Imports System.Windows.Forms
|
||||
Imports Microsoft.VisualBasic.PowerPacks.Printing.Compatibility.VB6
|
||||
Imports System.IO
|
||||
Imports System.Data
|
||||
Public Class frmPrinterSettings
|
||||
|
||||
Dim LogoTray As Integer = 0
|
||||
Dim NormalTray As Integer = 0
|
||||
Dim ManualTray As Integer = 0
|
||||
Dim EnvelopeTray As Integer = 0
|
||||
Dim Filepath As String = ""
|
||||
Dim OnInit As Boolean = True
|
||||
|
||||
|
||||
Sub New(ByRef a_wdapp As Object, ByVal params As String)
|
||||
InitializeComponent()
|
||||
Me.Filepath = params
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub frmPrinterSettings_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
|
||||
Dim Selindex As Integer = 0
|
||||
Dim i As Integer = 0
|
||||
For Each p As String In PrinterSettings.InstalledPrinters
|
||||
Dim tn As New treenode
|
||||
tn.Text = p
|
||||
tn.ImageIndex = 1
|
||||
tn.SelectedImageIndex = 1
|
||||
tn.StateImageIndex = 1
|
||||
|
||||
'20170711 - SHU
|
||||
Dim ConfigFilename As String
|
||||
ConfigFilename = Get_ConfigFilename(p)
|
||||
|
||||
'If File.Exists(Filepath + "\" + p.Replace("\", "@") + ".cfg") Then
|
||||
If File.Exists(Filepath + "\" + ConfigFilename) Then
|
||||
tn.ImageIndex = 0
|
||||
tn.SelectedImageIndex = 0
|
||||
tn.StateImageIndex = 0
|
||||
End If
|
||||
Me.tvPrinters.Nodes.Add(tn)
|
||||
Me.tvPrinters.SelectedNode = tvPrinters.Nodes(i)
|
||||
i = i + 1
|
||||
Next
|
||||
Me.SortNodes(Me.tvPrinters.Nodes)
|
||||
Me.tvPrinters.Nodes.Find(DefaultPrinterName, True)
|
||||
|
||||
Me.OnInit = False
|
||||
For Each t As TreeNode In Me.tvPrinters.Nodes
|
||||
If t.Text = DefaultPrinterName() Then Me.tvPrinters.SelectedNode = t
|
||||
Next
|
||||
Me.tvPrinters.Focus()
|
||||
End Sub
|
||||
|
||||
Public Sub SortNodes(ByVal NodesCollection As System.Windows.Forms.TreeNodeCollection, _
|
||||
Optional ByVal Ascending As Boolean = True)
|
||||
Dim node1, node2 As System.Windows.Forms.TreeNode
|
||||
Dim iTn1, iTn2 As Integer
|
||||
Dim k As Integer
|
||||
Dim iCompareResult As Integer
|
||||
|
||||
' Alle Knoten durchwandern
|
||||
For i As Integer = 0 To NodesCollection.Count
|
||||
|
||||
k = NodesCollection.Count
|
||||
|
||||
Do While k > i
|
||||
|
||||
k -= 1
|
||||
|
||||
' Je zwei Nodes ermitteln und Texte vergleichen
|
||||
node1 = NodesCollection(i)
|
||||
node2 = NodesCollection(k)
|
||||
Console.WriteLine(node1.Text & ", " & node2.Text)
|
||||
iCompareResult = node1.Text.CompareTo(node2.Text)
|
||||
|
||||
' Falls die Sortierung nicht dem übergebenen Sortierkriterium entspricht:
|
||||
If (Ascending = True And iCompareResult > 0) _
|
||||
OrElse _
|
||||
(Ascending = False And iCompareResult < 0) Then
|
||||
|
||||
' Nodes austauschen
|
||||
With NodesCollection
|
||||
.Remove(node1)
|
||||
.Remove(node2)
|
||||
.Insert(i, node2)
|
||||
.Insert(k, node1)
|
||||
End With
|
||||
|
||||
End If
|
||||
|
||||
Loop
|
||||
|
||||
Next
|
||||
|
||||
End Sub
|
||||
|
||||
Public Shared Function DefaultPrinterName() As String
|
||||
Dim oPS As New System.Drawing.Printing.PrinterSettings
|
||||
Try
|
||||
DefaultPrinterName = oPS.PrinterName
|
||||
Catch ex As System.Exception
|
||||
DefaultPrinterName = ""
|
||||
Finally
|
||||
oPS = Nothing
|
||||
End Try
|
||||
End Function
|
||||
|
||||
|
||||
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
|
||||
LogoTray = Me.lblLogoTray.SelectedValue
|
||||
NormalTray = Me.lblNormalTray.SelectedValue
|
||||
ManualTray = Me.lblManualTray.SelectedValue
|
||||
EnvelopeTray = Me.lblEnvelopeTray.SelectedValue
|
||||
SaveSettings()
|
||||
Me.tvPrinters.SelectedNode.ImageIndex = 0
|
||||
Me.tvPrinters.SelectedNode.SelectedImageIndex = 0
|
||||
Me.tvPrinters.SelectedNode.StateImageIndex = 0
|
||||
Exit Sub
|
||||
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub SaveSettings()
|
||||
If Not System.IO.Directory.Exists(Filepath) Then Me.Create_Folders(Filepath)
|
||||
'20170724
|
||||
Dim ConfigFilename As String = ""
|
||||
ConfigFilename = Get_ConfigFilename(Me.tvPrinters.SelectedNode.Text)
|
||||
FileOpen(1, Filepath + "\" + ConfigFilename, OpenMode.Output)
|
||||
'FileOpen(1, Filepath + "\" + Me.tvPrinters.SelectedNode.Text.Replace("\", "@") + ".cfg", OpenMode.Output)
|
||||
'20170724-Ende
|
||||
WriteLine(1, LogoTray)
|
||||
WriteLine(1, NormalTray)
|
||||
WriteLine(1, ManualTray)
|
||||
WriteLine(1, EnvelopeTray)
|
||||
FileClose(1)
|
||||
End Sub
|
||||
|
||||
Private Function Get_ConfigFilename(ByVal pname As String) As String
|
||||
Dim i As Integer
|
||||
|
||||
Dim cfilename As String = pname.Replace("\", "@") + ".cfg"
|
||||
If Microsoft.VisualBasic.Left(cfilename, 2) <> "@@" Then
|
||||
cfilename = pname
|
||||
i = cfilename.IndexOf("(")
|
||||
If i > 0 Then
|
||||
cfilename = cfilename.Substring(0, i - 1) + ".cfg"
|
||||
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
Return cfilename
|
||||
End Function
|
||||
|
||||
|
||||
|
||||
Private Sub tvPrinters_AfterSelect(sender As System.Object, e As System.Windows.Forms.TreeViewEventArgs) Handles tvPrinters.AfterSelect
|
||||
If OnInit = True Then Exit Sub
|
||||
Dim s As String
|
||||
Dim i As Integer = 0
|
||||
PopulatePrinterTray(Me.tvPrinters.SelectedNode.Text)
|
||||
If System.IO.File.Exists(Filepath + "\" + Me.tvPrinters.SelectedNode.Text.Replace("\", "@") + ".cfg") Then
|
||||
FileOpen(1, Filepath + "\" + Me.tvPrinters.SelectedNode.Text.Replace("\", "@") + ".cfg", OpenMode.Input)
|
||||
While Not EOF(1)
|
||||
i = i + 1
|
||||
Input(1, s)
|
||||
Select Case i
|
||||
Case 1
|
||||
Me.lblLogoTray.SelectedValue = s
|
||||
Case 2
|
||||
Me.lblNormalTray.SelectedValue = s
|
||||
Case 3
|
||||
Me.lblManualTray.SelectedValue = s
|
||||
Case 4
|
||||
Me.lblEnvelopeTray.SelectedValue = s
|
||||
End Select
|
||||
End While
|
||||
FileClose(1)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
|
||||
Me.Close()
|
||||
End Sub
|
||||
|
||||
Dim dt As New System.Data.DataTable
|
||||
Dim dt2 As New System.Data.DataTable
|
||||
Dim dt3 As New System.Data.DataTable
|
||||
Dim dt4 As New System.Data.DataTable
|
||||
|
||||
Private Sub PopulatePrinterTray(ByRef Printer As String)
|
||||
dt.Rows.Clear()
|
||||
dt.Columns.Clear()
|
||||
dt.Columns.Add("RawKind")
|
||||
dt.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 = dt.NewRow
|
||||
dr.Item(0) = pkSource.RawKind
|
||||
dr.Item(1) = pkSource.SourceName
|
||||
dt.Rows.Add(dr)
|
||||
Next
|
||||
dt2 = dt.Copy
|
||||
dt3 = dt.Copy
|
||||
dt4 = dt.Copy
|
||||
Me.lblLogoTray.DataSource = dt
|
||||
Me.lblLogoTray.ValueMember = "RawKind"
|
||||
Me.lblLogoTray.DisplayMember = "Sourcename"
|
||||
|
||||
Me.lblEnvelopeTray.DataSource = dt2
|
||||
Me.lblEnvelopeTray.ValueMember = "RawKind"
|
||||
Me.lblEnvelopeTray.DisplayMember = "Sourcename"
|
||||
|
||||
Me.lblNormalTray.DataSource = dt3
|
||||
Me.lblNormalTray.ValueMember = "RawKind"
|
||||
Me.lblNormalTray.DisplayMember = "Sourcename"
|
||||
|
||||
Me.lblManualTray.DataSource = dt4
|
||||
Me.lblManualTray.ValueMember = "RawKind"
|
||||
Me.lblManualTray.DisplayMember = "Sourcename"
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
Private Sub Label2_Click(sender As System.Object, e As System.EventArgs) Handles Label2.Click
|
||||
|
||||
End Sub
|
||||
Private Sub Label3_Click(sender As System.Object, e As System.EventArgs) Handles Label3.Click
|
||||
|
||||
End Sub
|
||||
|
||||
Public Function Create_Folders(ByVal s As String) As Boolean
|
||||
Dim xt(10) As String
|
||||
Dim xti As Integer
|
||||
Dim po As Integer
|
||||
Dim x As String
|
||||
Dim xti1 As Integer
|
||||
Dim i As Long
|
||||
po = InStr(s, "\")
|
||||
xti = 0
|
||||
While po <> 0
|
||||
xt(xti) = Microsoft.VisualBasic.Left(s, po - 1)
|
||||
xti = xti + 1
|
||||
s = Microsoft.VisualBasic.Right(s, Len(s) - (po))
|
||||
po = InStr(s, "\")
|
||||
End While
|
||||
xt(xti) = s
|
||||
For xti1 = 0 To xti
|
||||
If x <> "" Then x = x & "\"
|
||||
x = x & xt(xti1)
|
||||
If Not FolderExist(x) Then Create_Folder(x)
|
||||
Next
|
||||
Create_Folders = True
|
||||
End Function
|
||||
|
||||
Public Function Create_Folder(ByVal dn As String) As Boolean
|
||||
Try
|
||||
System.IO.Directory.CreateDirectory(dn)
|
||||
Catch
|
||||
Create_Folder = False
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Function FolderExist(ByVal dn As String) As Boolean
|
||||
Try
|
||||
If System.IO.Directory.Exists(dn) Then FolderExist = True Else FolderExist = False
|
||||
Catch
|
||||
FolderExist = False
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Function Set_Printer_To_Color() As Boolean
|
||||
|
||||
Dim pr As New Printer
|
||||
Dim ps As New PrinterSettings
|
||||
|
||||
If ps.SupportsColor = True Then
|
||||
pr.ColorMode = vbPRCMColor
|
||||
'Else
|
||||
'pr.ColorMode = vbPRCMMonochrome
|
||||
End If
|
||||
pr = Nothing
|
||||
ps = Nothing
|
||||
|
||||
End Function
|
||||
|
||||
Public Function Set_Printer_To_BW() As Boolean
|
||||
|
||||
Dim pr As New Printer
|
||||
Dim ps As New PrinterSettings
|
||||
|
||||
If ps.SupportsColor = True Then
|
||||
pr.ColorMode = vbPRCMMonochrome
|
||||
'Else
|
||||
' pr.ColorMode = vbPRCMMonochrome
|
||||
End If
|
||||
pr = Nothing
|
||||
ps = Nothing
|
||||
|
||||
End Function
|
||||
End Class
|
||||
Reference in New Issue
Block a user