Ahoj následujícím kódem přepínám za běhu aplikace tiskárny - to vše funguje ok, ale problém je v tom, že každá tiskárna ve svém nastavení uloženu specifickou velikost papíru - nadefinováno ve windows, ale při přepnutí se ta či ona nastaví jako výchozí, ale to ostatní co je pod ní uloženo si nenačte, přitom když ji změním ručně tak to funguje ok
Private Sub frmPrintLabelD_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated
'set default printer
Dim strOldPrinter As String
Dim WshNetwork As Object
Dim pd As New PrintDocument
Try
strOldPrinter = pd.PrinterSettings.PrinterName
DflPrn = strOldPrinter
WshNetwork = Microsoft.VisualBasic.CreateObject("WScript.Network")
WshNetwork.SetDefaultPrinter("AboSingleLabel")
'pd.PrinterSettings.PrinterName = "AboLabels"
pd.PrinterSettings.PrinterName = "AboSingleLabel"
If pd.PrinterSettings.IsValid Then
Return
Else
WshNetwork.SetDefaultPrinter(strOldPrinter)
Return
End If
Catch exptd As Exception
WshNetwork.SetDefaultPrinter(strOldPrinter)
Return
Finally
WshNetwork = Nothing
pd = Nothing
End Try
End Sub
Private Sub SetDeflPrinter()
'set default printer
Dim strOldPrinter As String
Dim WshNetwork As Object
Dim pd As New PrintDocument
Try
WshNetwork = Microsoft.VisualBasic.CreateObject("WScript.Network")
WshNetwork.SetDefaultPrinter(DflPrn)
pd.PrinterSettings.PrinterName = DflPrn
If pd.PrinterSettings.IsValid Then
Return
Else
WshNetwork.SetDefaultPrinter(strOldPrinter)
Return
End If
Catch exptd As Exception
If strOldPrinter = Nothing Then
WshNetwork = Nothing
pd = Nothing
Exit Sub
End If
WshNetwork.SetDefaultPrinter(strOldPrinter)
Return
Finally
WshNetwork = Nothing
pd = Nothing
Debug.Print(DflPrn)
End Try
End Sub
kód funguje opravdu dobře jen při změně nenačte to ostatní, napdá vás něco, aplikaci jsem podělil na tisk je používán powerpack od microsoftu a momentálně není možnost danou část přepsat
|