Question

Actuellement, je fournis à l'utilisateur avec deux contrôles: sauvegardez et imprimez.Lorsque l'utilisateur sélectionne Enregistrer, une région de l'écran WPF est emballée et envoyée via un XPSDocumentwriter et l'utilisateur est invité et encouragé à signer le nouveau document XPS.Lorsque l'utilisateur sélectionne Imprimer, une imprimante imprimée imprime la même région à une imprimante sélectionnée par l'utilisateur.

Bien et bien, sauf que Microsoft XPS Document Writer est l'un des choix des imprimeurs.Existe-t-il un moyen d'empêcher ou d'intercepter la sélection de l'utilisateur de XPS Document Writer et de les envoyer à la méthode de sauvegarde afin que je puisse inviter l'utilisateur à signer le document XPS?

Était-ce utile?

La solution

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top