Domanda

Attualmente sto fornendo all'utente due controlli: Salva e stampa.Quando l'utente seleziona Salva, una regione del display WPF è imballata e inviata tramite un XPSDOCuCuterWriter e l'utente viene richiesto e incoraggiato a firmare il nuovo documento XPS.Quando l'utente seleziona Stampa, Stampa StampaDialog.PrintVisual Stampa che la stessa regione su una stampante selezionata dall'utente.

Tutto bene e buono, tranne che il documento scrittore di documenti Microsoft XPS è una delle scelte per le stampanti.C'è un modo per prevenire o intercettare la selezione dell'utente dello scrittore di documenti XPS e inviarli al metodo Salva in modo da poter richiedere all'utente di firmare il documento XPS?

È stato utile?

Soluzione

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top