Técnicas de impresión avanzada

Adobe AIR 2 y posterior

Desde Adobe AIR 2, la clase PrintJob cuenta con propiedades y métodos adicionales, y se admiten tres clases más: PrintUIOptions, PaperSize y PrintMethod. Estos cambios permiten flujos adicionales de trabajo de impresoras y dan a los creadores más control sobre el proceso de impresión. Los cambios incluyen:

  • Diálogos de configuración de página: se pueden ver diálogos estándar y personalizados para la configuración de página. El usuario puede definir rangos de páginas, tamaño del papel, orientación y escala antes de imprimir.

  • Vista de impresión: es posible crear un modo de visualización para mostrar con precisión el tamaño del papel, los márgenes y la posición del contenido en la página.

  • Impresión restringida: los autores pueden restringir las opciones de impresión, como el rango de páginas imprimibles.

  • Opciones de calidad: los autores pueden ajustar la calidad de impresión de un documento y permitir que los usuarios puedan seleccionar la resolución y las opciones de color.

  • Multisesiones de impresión: ahora es posible utilizar una sola instancia de PrintJob para multisesiones de impresión. Las aplicaciones pueden proporcionar ajustes coherentes cada vez que se muestran los diálogos de configuración de página e impresión.

Cambios del flujo de trabajo de impresión

El nuevo flujo de trabajo de impresión está formado por estos pasos:

  • new PrintJob() : crea una instancia de PrintJob (o reutiliza una existente). Muchas propiedades y métodos PrintJob nuevos, como selectPaperSize() , están disponibles antes de que se inicie el trabajo de impresión o durante el proceso.

  • PrintJob.showPageSetupDialog() : (opcional) muestra el diálogo Configurar página sin iniciar un trabajo de impresión.

  • PrintJob.start() o PrintJob.start2() : además del método start() , el método start2() se utiliza para iniciar el proceso de cola de impresión. El método start2() permite elegir si se muestra el diálogo Imprimir y personalizarlo en caso de que se visualice.

  • PrintJob.addPage() : añade contenido al trabajo de impresión. No cambia en el proceso existente.

  • PrintJob.send() o PrintJob.terminate() : envía las páginas a la impresora seleccionada o finaliza el trabajo sin enviar nada. Los trabajos de impresión finalizan como respuesta a un error. Si se cancela una instancia de PrintJob, puede reutilizarse. Independientemente de si el trabajo de impresión se ha enviado a la impresora o se ha cancelado, se conserva la configuración actual de la impresora para cuando reutilice la instancia de PrintJob.

Cuadro de diálogo de configuración de página

El método showPageSetupDialog() muestra el diálogo Configurar página del sistema operativo si el entorno actual así lo admite. Compruebe siempre la propiedad supportsPageSetupDialog antes de llamar a este método. Aquí tiene un sencillo ejemplo:

import flash.printing.PrintJob; 
     
var myPrintJob:PrintJob = new PrintJob(); 
//check for static property supportsPageSetupDialog of PrintJob class 
if (PrintJob.supportsPageSetupDialog) { 
    myPrintJob.showPageSetupDialog(); 
}

Opcionalmente, se puede llamar a este método con una propiedad de la clase PrintUIOptions para controlar qué opciones aparecen en el diálogo Configuración de página. Es posible establecer los números de página máx. y mín. El siguiente ejemplo limita la impresión a las tres primeras páginas:

import flash.printing.PrintJob; 
     
var myPrintJob:PrintJob = new PrintJob(); 
if (PrintJob.supportsPageSetupDialog) { 
    var uiOpt:PrintUIOptions = new PrintUIOptions(); 
    uiOpt.minPage = 1; 
    uiOpt.maxPage = 3; 
    myPrintJob.showPageSetupDialog(uiOpt); 
}

Modificación de la configuración de impresión

Los parámetros de una instancia de PrintJob se pueden cambiar el cualquier momento tras su construcción. Esto incluye el cambio de ajustes entre llamadas addPage() y una vez enviado o finalizado el trabajo de impresión. Algunos ajustes, como la propiedad printer , se aplican a todo el trabajo de impresión, no a páginas por separado. La configuración deben establecerse antes de llamar a start() o a start2() .

Se puede llamar al método selectPaperSize() para establecer el tamaño de papel predeterminado en los diálogo Configurar página e Imprimir. También se puede llamar durante un trabajo de impresión para establecer el tamaño del papel en un rango de páginas. Se le llama utilizando constantes definidas en la clase PaperSize , como en este ejemplo, que selecciona un tamaño de sobre 10:

import flash.printing.PrintJob; 
import flash.printing.PaperSize; 
     
var myPrintJob:PrintJob = new PrintJob(); 
myPrintJob.selectPaperSize(PaperSize.ENV_10);

Utilice la propiedad printer para obtener o definir el nombre de la impresora del trabajo de impresión actual. De forma predeterminada, se establece como el nombre de la impresora predeterminada. La propiedad printer es null si no hay ninguna impresora disponible o si el sistema no admite impresión. Para cambiar la impresora, primero obtenga la lista de impresoras disponibles mediante la propiedad printers . Dicha propiedad es un vector cuyos elementos de cadena son nombres de impresoras disponibles. Defina la propiedad printer como uno de los valores de cadena que hacen que la impresora deseada sea la activa. La propiedad printer de un trabajo de impresión activo no se puede cambiar. Intente cambiarlo tras una llamada correcta a start() o start2() , y antes de que se envíe el trabajo o de que finalice. Aquí tiene un ejemplo para establecer esta propiedad:

import flash.printing.PrintJob; 
     
var myPrintJob:PrintJob = new PrintJob(); 
myPrintJob.printer = "HP_LaserJet_1"; 
myPrintJob.start();

La propiedad copies obtiene el valor del número de copias establecido en el diálogo Imprimir del sistema operativo. Las propiedades firstPage y lastPage obtienen el rango de páginas. La propiedad orientation obtiene el parámetro de orientación del papel. Estas propiedades se pueden establecer para que anulen los valores del diálogo Imprimir. El siguiente ejemplo establece estas propiedades:

import flash.printing.PrintJob; 
import flash.printing.PrintJobOrientation; 
     
var myPrintJob:PrintJob = new PrintJob(); 
myPrintJob.copies = 3; 
myPrintJob.firstPage = 1; 
myPrintJob.lastPage = 3; 
myPrintJob.orientation = PrintJobOrientation.LANDSCAPE;

Los siguientes ajustes de solo lectura asociados a PrintJob proporcionan información útil sobre la configuración de la impresora actual:

  • paperArea : límites rectangulares del medio de impresión, en puntos.

  • printableArea : límites rectangulares del área de impresión, en puntos.

  • maxPixelsPerInch : resolución física de la impresora actual, en píxeles por pulgada.

  • isColor : capacidad de la impresora actual para imprimir en color (devuelve true si la impresora actual puede imprimir en color).

Consulte Ejemplo de impresión: Configuración de página y opciones de impresión .