Share via


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

Actualización: noviembre 2007

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 interfaz de usuario y el envío de trabajos de XPS. El control es fácil utilizar y pueden crearse instancias de él mediante marcado Lenguaje de marcado de aplicaciones extensible (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:. Encontrará este archivo en la subcarpeta \Content después de descargar el ejemplo completo de Ejemplo 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");
        }
    }

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.

Nota

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 formularios 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, consulte Cómo: Imprimir mediante programación archivos XPS y Printing an XPS Document.

Vea también

Conceptos

Documentos en Windows Presentation Foundation

Información general sobre impresión

Referencia

PrintDialog

Otros recursos

Ejemplos de impresión

Microsoft XPS Document Writer