Frage

Derzeit mache ich dem Benutzer zwei Bedienelemente: Speichern und drucken.Wenn der Benutzer speichern auswählt, ist ein Bereich der WPF-Anzeige über einen XPSDocumentWriter verpackt und gesendet, und der Benutzer wird aufgefordert und empfohlen, das neue XPS-Dokument zu unterschreiben.Wenn der Benutzer den Druck auswählt, druckt ein PrintDialog.printVisual, dass derselbe Bereich einem ausgewählten Benutzer derselben Region druckt.

alles gut und gut, mit der Ausnahme, dass Microsoft XPS Document Writer eine der Optionen für Drucker ist.Gibt es eine Möglichkeit, die Benutzerauswahl des XPS-Dokumentschreibers zu verhindern oder zu feiern, und senden Sie sie an die Speichern-Methode, damit ich den Benutzer auffordern kann, das XPS-Dokument zu unterschreiben?

War es hilfreich?

Lösung

Disclaimer: I've never used PrintDialog before, but it looks like something like this might work:

System.Windows.Controls.PrintDialog printDialog = new PrintDialog();
if (printDialog.ShowDialog() == true)
{
    PrintQueue selectedQueue = printDialog.PrintQueue;
    if (selectedQueue.Name == "Microsoft XPS Document Writer")
    {
        // Run your XPS save & sign code
    }
    else
    {
        // Run your printDialog.PrintVisual() code
    }
}

I don't really like having the printer name hard-coded (I assume it varies with language settings). Possibly there is a better property of PrintQueue that you can use to identify this printer.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top