다음을 통해 공유


방법: 인쇄 대화 상자 호출

애플리케이션에서 인쇄할 수 있는 기능을 제공하려면 PrintDialog 개체를 생성하고 열기만 하면 됩니다.

예제

PrintDialog 컨트롤은 UI, 구성 및 XPS 작업 제출을 위한 단일 진입점을 제공합니다. 컨트롤은 사용하기 쉽고 XAML(Extensible Application Markup Language) 태그 또는 코드를 사용하여 인스턴스화할 수 있습니다. 다음 예제에서는 코드에서 컨트롤을 인스턴스화하고 여는 방법과 컨트롤에서 인쇄하는 방법을 보여 줍니다. 또한 대화 상자가 사용자에게 특정 페이지 범위를 설정하는 옵션을 제공하는지 확인하는 방법도 보여 줍니다. 예제 코드는 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 문서 작성기를 선택하여 XPS(XML Paper Specification) 파일을 만들 수 있는 옵션도 있습니다.

참고

이 항목에서 설명하는 WPF의 System.Windows.Controls.PrintDialog 컨트롤은 Windows Forms의 System.Windows.Forms.PrintDialog 구성 요소와 혼동해서는 안 됩니다.

엄밀히 말하면 대화 상자를 열지 않고도 PrintDocument 메서드를 사용할 수 있습니다. 그런 의미에서 컨트롤을 보이지 않는 인쇄 구성 요소로 사용할 수 있습니다. 그러나 성능상의 이유로 AddJob 메서드 또는 XpsDocumentWriter의 많은 WriteWriteAsync 메서드 중 하나를 사용하는 것이 좋습니다. 이에 대한 자세한 내용은 프로그래밍 방식으로 XPS 파일 인쇄를 참조하세요.

참고 항목