Tisk na vybranou tiskárnu   otázka

VB.NET, Tisk

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

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback