Como: Chamar um diálogo de impressão
Para fornecer a habilidade de imprimir a partir de sua aplicação, você pode simplesmente criar e abrir um objeto PrintDialog.
Exemplo
O controle PrintDialog fornece um único ponto de entrada para UI, configuração e submissão de trabalhos XPS. O controle é fácil de usar e pode ser instanciado usando marcação Extensible Application Markup Language (XAML) ou código. O seguinte exemplo demonstra como instanciar e abrir o controle no código e como imprimir a partir dele. Ele também mostra como garantir que o diálogo irá dar ao usuário a opção de definir um intervalo específico de páginas. O código de exemplo pressupõe que existe um arquivo FixedDocumentSequence.xps na raiz da unidade C: unidade. Você pode encontrar tal arquivo no subdiretório \Content depois de realizar o download do exemplo completo de Exemplo de PrintDialog.
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");
}
}
Uma vez que o diálogo é aberto, usuários poderão selecionar a partir das impressoras instaladas em seus computadores. Eles também terá a opção de selecionar o Microsoft XPS documento Writer para criar um XML Paper Specification (XPS) arquivo em vez de impressão.
Observação: |
---|
O System.Windows.Controls.PrintDialog controle de WPF, que é discutida neste tópico, não deve ser confundido com o System.Windows.Forms.PrintDialog componente do Windows Forms. |
Especificamente, você pode usar o método PrintDocument sem abrir o diálogo. Neste sentido, o controle pode ser usado como um componente de impressão sem ver. Mas por razões de performance, é melhor usar tanto o método AddJob ou um dos muitos métodos Write e WriteAsync do XpsDocumentWriter. Para mais sobre isto, consulte Como: Programmatically Print XPS Files e Impressão um documento XPS.
Consulte também
Conceitos
Documentos em Windows Presentation Foundation