Fragensteller
Drucken

Allgemeine Diskussion
-
Hallo zusammen
Ich bin gerade dabei eine Druckfunktion bei meinem Programm zu erstellen. Dabei habe ich diverse Möglichkeiten angeschaut. Ich habe mich dann Entschieden dass ich ein Grid erstelle, die entsprechenden Controls auf das Grid platziere und dieses dann drucke (s. unteres Beispiel).
var printDialog = new System.Windows.Controls.PrintDialog(); if (printDialog.ShowDialog() == true) { Grid grid = new Grid(); // Grid anpassen mit Children's, etc...... printDialog.PrintVisual(grid, "Printjob"); }
Bei meinem neuen HP-Multifunktionsgerät hat das sauber geklappt, jedoch bei allen Geräten (ca. 4 Stück) im Geschäft wird nur eine leere Seite rausgegeben. Nun wollte ich euch fragen ob ihr wisst woran das liegt, dass nicht alle Drucker, das drucken können und ob es hier einen einfacheren bzw. besseren Weg gibt. Möglicherweise gibt es ja auch einen gewissen Standard den man implementieren könnte...
Freundliche Grüsse
Gezim95
Gezim
- Typ geändert Dimitar DenkovMicrosoft contingent staff, Administrator Mittwoch, 5. August 2015 11:16 Keine bestätigte Lösung für das Herausholen des Papiers vom anderen Fach
Alle Antworten
-
Hallo Desert-Fox
Danke für deine rasche Antwort. Ich habe mir mal den Tipp mit der PrintDocument-Klasse angeschaut, jedoch habe ich im Internet nur Beispiele gesehen mit WinForms. Hast du evtl. noch ein Beispiel mit WPF-Oberflächen.
Gruss Gezim95
Gezim
-
Ich selber habe kein Beispiel, aber vielleicht hilft dir das folgende Tutorial weiter
-
Hallo nochmal
Ich habe es so gelöst dass ich zu erst eine XPS-Datei erstelle und dann diese Drucke.
// Erstellen einer Oberfläche Grid grid = new Grid(); //... // XPS-Datei erstellen XpsDocument document = new XpsDocument("test.xps", System.IO.FileAccess.ReadWrite);System.Windows.Xps.XpsDocumentWriter xpsdw = XpsDocument.CreateXpsDocumentWriter(document); xpsdw.Write(grid); document.Close(); // Drucker var localPrintServer = new System.Printing.LocalPrintServer(); System.Printing.PrintQueue defaultPrintQueue = System.Printing.LocalPrintServer.GetDefaultPrintQueue();
System.Printing.PrintSystemJobInfo printjob = PrintQueue.AddJob("Printtest", "test.xps", false);
Aber weiss jemand wie ich somit einen Drucker ansteuern kann bzw. wie ich ihm sagen kann dass er das Papier vom Fach2 rausholen soll.
Gruss Gezim95
Gezim
- Bearbeitet Gezim95 Donnerstag, 16. Juli 2015 09:48