방법: 인쇄 대화 상자 호출
응용 프로그램에 인쇄 기능을 제공하기 위한 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");
}
}
대화 상자가 열리면 사용자는 자신의 컴퓨터에 설치된 프린터에서 선택할 수 있습니다. 또한 인쇄하는 대신 XML Paper Specification (XPS) 파일을 만드는 Microsoft XPS Document Writer를 선택하는 옵션을 갖게 됩니다.
참고 |
---|
이 항목에서 설명하는 WPF의 System.Windows.Controls.PrintDialog 컨트롤을 Windows Forms의 System.Windows.Forms.PrintDialog 구성 요소와 혼동해서는 안 됩니다. |
대화 상자를 열지 않고 PrintDocument 메서드를 사용할 수도 있습니다. 이러한 방법으로 이 컨트롤을 보이지 않는 인쇄 구성 요소로 사용할 수 있습니다. 그러나 성능상의 이유로 AddJob 메서드 또는 XpsDocumentWriter의 여러 Write 및 WriteAsync 메서드 중 하나를 사용하는 것이 좋습니다. 자세한 내용은 방법: 프로그래밍 방식으로 XPS 파일 인쇄를 참조하십시오.