方法 : 印刷ダイアログ ボックスを呼び出す
アプリケーションからの印刷機能は、PrintDialog オブジェクトを作成して開くだけで提供できます。
使用例
PrintDialog コントロールは、UI、構成、および XPS ジョブ送信のための単一エントリ ポイントを提供します。 このコントロールは使いやすく、Extensible Application Markup Language (XAML) マークアップまたはコードを使用してインスタンス化できます。 コードでコントロールをインスタンス化して開き、そのコントロールから印刷する方法を次の例に示します。 また、ダイアログ ボックスを使用してユーザーがページの特定範囲を設定できるようにする方法も示します。 このコード例は、C: ドライブのルートに FixedDocumentSequence.xps というファイルがあることを前提としています。
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
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");
}
}
ダイアログ ボックスを開くと、ユーザーは各自のコンピューターにインストールされているプリンターの中からプリンターを選択することができます。 また、印刷する代わりに Microsoft XPS ドキュメント ライターを選択して XML Paper Specification (XPS) ファイルを作成することもできます。
メモ |
---|
このトピックで説明する WPF の System.Windows.Controls.PrintDialog コントロールを Windows Formsの System.Windows.Forms.PrintDialog コンポーネントと混同しないようにしてください。 |
厳密には、ダイアログを開かないで PrintDocument メソッドを使用できます。 この意味で、このコントロールは非表示の印刷コンポーネントとして使用できます。 ただし、パフォーマンス上の理由から、AddJob メソッドまたは XpsDocumentWriter の複数の Write メソッドおよび WriteAsync メソッドのいずれかを使用することをお勧めします。 この詳細については、「方法 : XPS ファイルをプログラムにより印刷する」を参照してください。