次の方法で共有


方法: 印刷ダイアログ ボックスを呼び出す

アプリケーションから印刷する機能を提供するには、PrintDialog オブジェクトを作成して開くだけで済みます。

PrintDialog コントロールには、UI、構成、および XPS ジョブの送信用に 1 つのエントリ ポイントが用意されています。 このコントロールは使いやすく、Extensible Application Markup Language (XAML) マークアップまたはコードを使用してインスタンスを作成できます。 コードでコントロールをインスタンス化して開く方法と、そこから印刷する方法の例を次に示します。 また、ダイアログで、特定の範囲のページを設定するオプションをユーザーに提供する方法も示します。 このコード例では、C: ドライブのルートに FixedDocumentSequence.xps ファイルがあることを前提としています。

private void InvokePrint(object sender, RoutedEventArgs e)
    {
        // Create the print dialog object and set options
        PrintDialog pDialog = new PrintDialog();
        pDialog.PageRangeSelection = PageRangeSelection.AllPages;
        pDialog.UserPageRangeEnabled = true;

        // Display the dialog. This returns true if the user presses the Print button.
        Nullable<Boolean> print = pDialog.ShowDialog();
        if (print == true)
        {
            XpsDocument xpsDocument = new XpsDocument("C:\\FixedDocumentSequence.xps", FileAccess.ReadWrite);
            FixedDocumentSequence fixedDocSeq = xpsDocument.GetFixedDocumentSequence();
            pDialog.PrintDocument(fixedDocSeq.DocumentPaginator, "Test print job");
        }
    }
Private Sub InvokePrint(ByVal sender As Object, ByVal e As RoutedEventArgs)
        ' Create the print dialog object and set options
        Dim pDialog As New PrintDialog()
        pDialog.PageRangeSelection = PageRangeSelection.AllPages
        pDialog.UserPageRangeEnabled = True

        ' Display the dialog. This returns true if the user presses the Print button.
        Dim print? As Boolean = pDialog.ShowDialog()
        If print = True Then
            Dim xpsDocument As New XpsDocument("C:\FixedDocumentSequence.xps", FileAccess.ReadWrite)
            Dim fixedDocSeq As FixedDocumentSequence = xpsDocument.GetFixedDocumentSequence()
            pDialog.PrintDocument(fixedDocSeq.DocumentPaginator, "Test print job")
        End If
End Sub

ダイアログが開くと、ユーザーはコンピューターにインストールされているプリンターから選択できます。 また、[Microsoft XPS ドキュメント ライター] を選択し、印刷するのではなく XML Paper Specification (XPS) ファイルを作成することもできます。

注意

このトピックで説明されている WPF の System.Windows.Controls.PrintDialog コントロールは、Windows フォームの System.Windows.Forms.PrintDialog コンポーネントと混同しないでください。

厳密に言うと、ダイアログを開かなくても PrintDocument メソッドを使用できます。 その意味で、コントロールは目に見えない印刷コンポーネントとして使用できます。 ただし、パフォーマンス上の理由から、AddJob メソッド、または XpsDocumentWriter の多くの Write および WriteAsync メソッドのいずれかを使用することをお勧めします。 この詳細については、プログラムによる XPS ファイルの印刷に関するページを参照してください。

関連項目