Compartilhar via


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çãoObservaçã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

Visão Geral de Impressão

Referência

PrintDialog

Outros recursos

Exemplos de impressão

Microsoft XPS Document Writer