Como invocar uma caixa de diálogo Imprimir
Para fornecer a capacidade de imprimir a partir de seu aplicativo, você pode simplesmente criar e abrir um PrintDialog objeto.
Exemplo
O PrintDialog controle fornece um único ponto de entrada para a interface do usuário, configuração e envio de trabalho XPS. O controle é fácil de usar e pode ser instanciado usando marcação ou código XAML (Extensible Application Markup Language). O exemplo a seguir demonstra como instanciar e abrir o controle no código e como imprimir por meio dele. Também mostra como assegurar que o diálogo dê ao usuário a opção de definir um intervalo específico de páginas. O código do exemplo pressupõe que existe um arquivo FixedDocumentSequence.xps na raiz da unidade C:.
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
Uma vez que a caixa de diálogo estiver aberta, os usuários poderão selecionar as impressoras instaladas em seu computador. Eles também terão a opção de selecionar o Microsoft XPS Document Writer para criar um arquivo XPS (XML Paper Specification) em vez de imprimir.
Observação
O System.Windows.Controls.PrintDialog controle do WPF, que é discutido neste tópico, não deve ser confundido com o System.Windows.Forms.PrintDialog componente do Windows Forms.
Estritamente falando, você pode usar o PrintDocument método sem nunca abrir a caixa de diálogo. Assim, o controle pode ser utilizado como um componente de impressão não visto. Mas, por razões de desempenho, seria melhor usar o AddJob método ou um dos muitos Write e WriteAsync métodos do XpsDocumentWriter. Para obter mais informações sobre isso, consulte Imprimir arquivos XPS programaticamente.
Confira também
.NET Desktop feedback
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de