Standardrucker mit Farbe, Duplex etc. einstellen

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Standardrucker mit Farbe, Duplex etc. einstellen

    Hallo zusammen,

    wie kann ich den Standarddrucker mit den verschiedenen Optionen einstellen? Ich habe verschiedene Drucker mit unterschiedlichen Papiergrößen, Farbe und Optionen. Diese würde ich gerne für verschiedene Anwendungen speichern und beim Aufruf der Applikation einstellen.

    Wie kann ich die Druckeinstellungen speichern bzw. setzen?

    Den Standarddrucker kann ich so setzen:

    Quellcode

    1. Shell(String.Format("rundll32 printui.dll,PrintUIEntry /y /n ""{0}""", cbxInstalledPrinters.Text))


    Vielen Dank

    Goof
    Sieh Dir mal den PrintDialog an.

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    2. PrintDialog1.ShowDialog()
    3. PrintDialog1.PrinterSettings.Duplex = Printing.Duplex.Horizontal
    4. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Die Einstellungen kann ich so abfragen:

    Quellcode

    1. Dim pd As New PrintDocument()
    2. Dim pg As PageSettings = pd.DefaultPageSettings
    3. Dim ps As PrinterSettings = pg.PrinterSettings
    4. MsgBox("Printer Settings")
    5. MsgBox("PrinterName = " + pd.PrinterSettings.PrinterName)
    6. MsgBox("Is default Printer = " + ps.IsDefaultPrinter.ToString())
    7. MsgBox("Is plotter = " + ps.IsPlotter.ToString())
    8. MsgBox("Is printer valid = " + ps.IsValid.ToString())
    9. MsgBox("Can Duplex = " + ps.IsValid.ToString())
    10. MsgBox("Num copies = " + ps.Copies.ToString())
    11. MsgBox("Max Copies = " + ps.MaximumCopies.ToString())
    12. MsgBox("Max Page = " + ps.MaximumPage.ToString())
    13. MsgBox("Min Page = " + ps.MinimumPage.ToString())
    14. MsgBox("Supports Color = " + ps.SupportsColor.ToString())
    15. For Each p As PaperSize In ps.PaperSizes
    16. MsgBox("Supports Paper Size: " + p.PaperName)
    17. Next
    18. For Each p As PaperSource In ps.PaperSources
    19. MsgBox("Supports Paper Source: " + p.SourceName)
    20. Next
    21. MsgBox(vbLf & "Page Settings")
    22. MsgBox("Is Color = " + pg.Color.ToString())
    23. MsgBox("Top Bound = " + pg.Bounds.Top.ToString())
    24. MsgBox("Bottom Bound = " + pg.Bounds.Bottom.ToString())
    25. MsgBox("Left Bound = " + pg.Bounds.Left.ToString())
    26. MsgBox("Right Bound = " + pg.Bounds.Right.ToString())
    27. MsgBox("Top Margin = " + pg.Margins.Top.ToString())
    28. MsgBox("Bottom Margin = " + pg.Margins.Bottom.ToString())
    29. MsgBox("Left Margin = " + pg.Margins.Left.ToString())
    30. MsgBox("Right Margin = " + pg.Margins.Right.ToString())
    31. MsgBox("Landscape = " + pg.Landscape.ToString())
    32. MsgBox("PaperSize = " + pg.PaperSize.PaperName)
    33. MsgBox("PaperSource = " + pg.PaperSource.SourceName)
    34. MsgBox("PrinterResolution = " + pg.PrinterResolution.Kind.ToString())
    35. MsgBox("PrinterResolution X = " + pg.PrinterResolution.X.ToString())
    36. MsgBox("PrinterResolution Y = " + pg.PrinterResolution.Y.ToString())
    37. Console.ReadLine()
    Bei den vielen MessageBoxen bekommst Du doch eine Meise. :S
    Und setzen kannst Du die Dinger auch. Oder Nicht?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    VB.NET-Quellcode

    1. PrintDialog1.PrinterSettings.Duplex = Printing.Duplex.Horizontal
    2. PrintDialog1.PrinterSettings.Copies = 15
    oder halt Deiner PrinterSettings-Instanz
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Da solltest Du lernen zu finden, nicht zu suchen.
    Das Zauberwort heißt MSDN.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Dummerweise hat MSDN keine vernünftige Suche-Funktion - oder habich iwas verpasst?

    Aber man kann sich behelfen, indem man immer zunächst im ObjectBrowser sucht.
    Von dort kann man auch mit [F1] direkt in den Msdn-Artikel springen, und auf diese Weise hat man immerhin eine indirekte Suche auf Msdn.

    ErfinderDesRades schrieb:

    oder habich iwas verpasst?
    Nö, der TE soll sich mal die ganze Liste hoch und runter ansehen, das, was man da braucht, sieht man dann schon.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Goof schrieb:

    Jetzt geht es :)
    Lässt Du uns noch an Deiner Lösung teilhaben?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!