Compartir a través de


Cómo: Invocar un cuadro de diálogo de impresión

Para proporcionar la capacidad de imprimir desde la aplicación, basta con crear y abrir un objeto PrintDialog.

Ejemplo

El control PrintDialog proporciona un punto de entrada único para la configuración de UI y el envío de trabajos de XPS. El control es fácil utilizar y pueden crearse instancias de él mediante marcado Extensible Application Markup Language (XAML) o código. En el ejemplo siguiente se muestra cómo crear instancias del control, abrirlo mediante código e imprimir desde él. También se muestra cómo asegurarse de que el cuadro de diálogo permita al usuario establecer un intervalo de páginas concreto. En el ejemplo de código se da por hecho que existe un archivo FixedDocumentSequence.xps en la raíz de la unidad de disco C:.

        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");
        }
    }

Una vez abierto el cuadro de diálogo, el usuario podrá seleccionar una de las impresoras instaladas en el equipo. También dispondrá de la opción de seleccionar el Escritor de documentos XPS de Microsoft para crear un archivo XML Paper Specification (XPS) en lugar de imprimir.

NotaNota

El control System.Windows.Controls.PrintDialog de WPF, que se explica en este tema, no se debe confundir con el componente System.Windows.Forms.PrintDialog de Windows Forms.

En sentido estricto, puede utilizar el método PrintDocument sin llegar a abrir nunca el cuadro de diálogo. En este sentido, el control se puede utilizar como componente de impresión oculto. No obstante, por motivos de rendimiento, es preferible utilizar el método AddJob o uno de los numerosos métodos Write y WriteAsync de XpsDocumentWriter. Para obtener más información al respecto, vea Cómo: Imprimir mediante programación archivos XPS.

Vea también

Referencia

PrintDialog

Conceptos

Documentos en WPF

Información general sobre impresión

Otros recursos

Escritor de documentos XPS de Microsoft