質問

現在私は2つのコントロールをユーザーに提供しています:保存して印刷します。ユーザが保存を選択すると、WPFディスプレイの領域がパッケージ化されてXPSoCumentWriterを介して送信され、ユーザは促され、新しいXPS文書に署名するように促されます。ユーザが印刷を選択すると、PrintDialog.PrintVisualがその同じ領域を選択したプリンタに印刷します。

Microsoft XPSドキュメントライターはプリンタの選択肢の1つです。XPSドキュメントライターのユーザー選択を防止または傍受し、それらをSaveメソッドに送信する方法はありますので、ユーザーにXPS文書に署名するように促す方法は?

役に立ちましたか?

解決

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.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top