Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Printer suchen wenn nicht gefunden dann
Bender1988
myCSharp.de - Member



Dabei seit:
Beiträge: 6

Themenstarter:

Printer suchen wenn nicht gefunden dann

beantworten | zitieren | melden

Hallo Zusammen,

ich stehe vor einem vermutlich kleinen Problem und bitte um Hilfe.

ich möchte dass ein direktdruck auf einem bestimmten Drucker gemacht wird dies funktioniert auch.
printDocument1.PrinterSettings.PrinterName = "Dymo LabelWriter 450";
printDocument1.Print();

jetzt möchte ich zusätzlich noch wenn dieser Drucker nicht existiert soll der printdialog geöffnet werden.

momentan sieht es so aus.


If(printDocument1.Print)
            {
                printDocument1.PrinterSettings.PrinterName = "Dymo LabelWriter 450";
                printDocument1.Print();
            }
            else
            {
                printDialog1.ShowDialog();
            }

allerdings bringt es einen Fehler gleich in der ersten Zeile
Can not convert method group print in bool könnte mir jemand helfen wie die Programmierung richtig aussehen muss

Ich bedanke mich im Vorfeld für eure Hilfe

Moderationshinweis von Abt (29.07.2022 - 16:17)

Bitte in Zukunft Code Tags verwenden. Niemand liest gern unformatierten Code
[Hinweis] Wie poste ich richtig?

private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4.643

beantworten | zitieren | melden

Hallo und willkommen,

benutze PrinterSettings.InstalledPrinters, um die installierten Drucker zu durchsuchen: How to check if a printer exists in C# and VB.NET (auch wenn der Code m.E. nicht 100%ig optimal ist).

PS: Bitte verwende die C#-Tags hier im Forum (kannst auch noch, eine Zeit lang, nachträglich deinen Beitrag editieren).
private Nachricht | Beiträge des Benutzers
Bender1988
myCSharp.de - Member



Dabei seit:
Beiträge: 6

Themenstarter:

beantworten | zitieren | melden

Vielen Dank für die schnelle Antwort.

wie bekomme ich das jetzt ausgeführt
ich würde gerne form load und darin soll es direkt ausgeführt werden.

sorry für die dummen fragen bin absoluter neuling
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4.643

beantworten | zitieren | melden

Wenn du die Methode aus dem 2. Link in deine Klasse kopierst (evtl. noch using System.Linq; ganz oben hinzufügen), dann so aufrufen:


string printerName = "Dymo LabelWriter 450";
if (PrinterExists(printerName))
{
    printDocument1.PrinterSettings.PrinterName = printerName;
    printDocument1.Print();
}
else
{
    printDialog1.ShowDialog();
}

Edit:
Ich habe gerade in der Doku zu PrinterSettings.PrinterName (s. "Hinweise") gelesen, daß es noch einfacher (ohne obige Methode) geht:


printDocument1.PrinterSettings.PrinterName = "Dymo LabelWriter 450";
if (printDocument1.PrinterSettings.IsValid)
{
    printDocument1.Print();
}
else
{
    printDialog1.ShowDialog();
}
Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von Th69 am .
private Nachricht | Beiträge des Benutzers
Alf Ator
myCSharp.de - Member



Dabei seit:
Beiträge: 700

beantworten | zitieren | melden

Zitat von Bender1988
If(printDocument1.Print)
... [/csharp]

allerdings bringt es einen Fehler gleich in der ersten Zeile
Can not convert method group print in bool

Du hast die Klammern vergessen.
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4.643

beantworten | zitieren | melden

Das bringt hier auch nichts, denn die PrintDocument.Print-Methode hat keinen Rückgabewert.
Und es soll außerdem vorher ermittelt werden, ob dieser spezielle Drucker installiert ist.
private Nachricht | Beiträge des Benutzers