Laden...

Printer suchen wenn nicht gefunden dann

Erstellt von Bender1988 vor einem Jahr Letzter Beitrag vor einem Jahr 615 Views
B
Bender1988 Themenstarter:in
6 Beiträge seit 2022
vor einem Jahr
Printer suchen wenn nicht gefunden dann

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

Hinweis von Abt vor einem Jahr

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

4.938 Beiträge seit 2008
vor einem Jahr

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).

B
Bender1988 Themenstarter:in
6 Beiträge seit 2022
vor einem Jahr

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

4.938 Beiträge seit 2008
vor einem Jahr

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();
}

A
764 Beiträge seit 2007
vor einem Jahr

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.

4.938 Beiträge seit 2008
vor einem Jahr

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.