| Paquete | flash.printing |
| Clase | public class PrintJob |
| Herencia | PrintJob EventDispatcher Object |
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Utilice el constructor PrintJob() para crear un trabajo de impresión.
Asimismo, con las propiedades que rellena PrintJob.start(), el documento puede leer la configuración de la impresora del usuario (altura y anchura de página y orientación de imagen) y se puede configurar el documento para dar al contenido de Flash, dinámicamente, un formato apropiado para la configuración de la impresora. Las propiedades de diseño de usuario llenadas por PrintJob.start() son de sólo lectura, por lo que Flash Player no puede modificarlas.
Nota: ActionScript 3.0 no restringe un objeto PrintJob a un solo fotograma (como ocurría en versiones anteriores de ActionScript). Sin embargo, como el sistema operativo muestra al usuario información del estado de la impresión después de que el usuario haya hecho clic en el botón Aceptar del cuadro de diálogo de impresión, debe llamar a PrintJob.addPage() y PrintJob.send() cuando sea posible para enviar páginas a la cola. Una demora al llegar al fotograma que contiene la llamada PrintJob.send() retrasará el proceso de impresión.
Además, se aplica un límite de tiempo de espera de script de 15 segundos a los siguientes intervalos:
PrintJob.start() y el primer PrintJob.addPage()PrintJob.addPage() y el siguiente PrintJob.addPage()PrintJob.addPage() y PrintJob.send()Si alguno de los intervalos anteriores dura más de 15 segundos, la siguiente llamada a PrintJob.start() en la instancia PrintJob devolverá false y el siguiente PrintJob.addPage() de la instancia PrintJob hará que Flash Player emita una excepción de tiempo de ejecución.
Véase también
| Propiedad | Definido por | ||
|---|---|---|---|
![]() | constructor : Object
Una referencia a la clase de objeto o función constructora para una instancia de objeto determinada.
| Object | |
| orientation : String
[read-only]
Orientación con que se imprime la página.
| PrintJob | ||
| pageHeight : int
[read-only]
La altura del área real de la página que se puede imprimir, en puntos.
| PrintJob | ||
| pageWidth : int
[read-only]
La anchura del área real de la página que se puede imprimir, en puntos.
| PrintJob | ||
| paperHeight : int
[read-only]
Altura total del papel en puntos.
| PrintJob | ||
| paperWidth : int
[read-only]
Anchura total del papel en puntos.
| PrintJob | ||
![]() | prototype : Object
[static]
Una referencia al objeto prototipo de una clase u objeto de función.
| Object | |
| Método | Definido por | ||
|---|---|---|---|
|
PrintJob()
Crea un objeto PrintJob que se puede utilizar para imprimir una o varias páginas.
| PrintJob | ||
![]() |
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registra un objeto de detector de eventos con un objeto EventDispatcher, de modo que el detector reciba la notificación de un evento.
| EventDispatcher | |
|
addPage(sprite:Sprite, printArea:Rectangle = null, options:PrintJobOptions = null, frameNum:int = 0):void
Envía el objeto Sprite especificado como página individual a la cola de impresión.
| PrintJob | ||
![]() |
Distribuye un evento en el flujo del evento.
| EventDispatcher | |
![]() |
Comprueba si el objeto EventDispatcher tiene detectores registrados para un tipo concreto de evento.
| EventDispatcher | |
![]() |
Indica si un objeto tiene definida una propiedad especificada.
| Object | |
![]() |
Indica si hay una instancia de la clase Object en la cadena de prototipo del objeto especificado como parámetro.
| Object | |
![]() |
Indica si existe la propiedad especificada y si es enumerable.
| Object | |
![]() |
Elimina un detector del objeto EventDispatcher.
| EventDispatcher | |
|
Envía páginas a la cola de impresión tras comprobar que PrintJob.start() y PrintJob.addPage() se han recibido correctamente.
| PrintJob | ||
![]() |
Establece la disponibilidad de una propiedad dinámica para operaciones de bucle.
| Object | |
|
Muestra el cuadro de diálogo Imprimir del sistema operativo, inicia el envío a la cola de impresión y define los valores de la propiedad de sólo lectura del objeto PrintJob.
| PrintJob | ||
![]() |
Devuelve la representación de cadena del objeto especificado.
| Object | |
![]() |
Devuelve el valor simple del objeto especificado.
| Object | |
![]() |
Comprueba si hay registrado un detector de eventos con este objeto EventDispatcher o con cualquiera de sus ascendientes para el tipo de evento concreto.
| EventDispatcher | |
| orientation | propiedad |
orientation:String [read-only]
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9. |
Orientación con que se imprime la página. Esta propiedad es un valor de la clase PrintJobOrientation. Esta propiedad sólo está disponible tras realizar una llamada al método PrintJob.start().
public function get orientation():String
Véase también
| pageHeight | propiedad |
pageHeight:int [read-only]
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9. |
La altura del área real de la página que se puede imprimir, en puntos. Los márgenes establecidos por el usuario no se tienen en cuenta. Esta propiedad sólo está disponible tras realizar una llamada al método PrintJob.start().
public function get pageHeight():int
Véase también
| pageWidth | propiedad |
pageWidth:int [read-only]
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9. |
La anchura del área real de la página que se puede imprimir, en puntos. Los márgenes establecidos por el usuario no se tienen en cuenta. Esta propiedad sólo está disponible tras realizar una llamada al método PrintJob.start().
public function get pageWidth():int
Véase también
| paperHeight | propiedad |
paperHeight:int [read-only]
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9. |
Altura total del papel en puntos. Esta propiedad sólo está disponible tras realizar una llamada al método PrintJob.start().
public function get paperHeight():int
| paperWidth | propiedad |
paperWidth:int [read-only]
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9. |
Anchura total del papel en puntos. Esta propiedad sólo está disponible tras realizar una llamada al método PrintJob.start().
public function get paperWidth():int
| PrintJob | () | constructor |
public function PrintJob()
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Crea un objeto PrintJob que se puede utilizar para imprimir una o varias páginas. Tras crear un objeto PrintJob, es necesario utilizar (en el orden siguiente) los métodos PrintJob.start(), PrintJob.addPage() y PrintJob.send() para enviar el trabajo de impresión a la impresora.
Por ejemplo, se puede reemplazar el texto del marcador de posición [params] de las llamadas al método my_pj.addPage() mediante parámetros personalizados del modo que se indica a continuación en el siguiente código:
// create PrintJob object
var my_pj:PrintJob = new PrintJob();
// display Print dialog box, but only initiate the print job
// if start returns successfully.
if (my_pj.start()) {
// add specified page to print job
// repeat once for each page to be printed
try {
my_pj.addPage([params]);
}
catch(e:Error) {
// handle error
}
try {
my_pj.addPage([params]);
}
catch(e:Error) {
// handle error
}
// send pages from the spooler to the printer, but only if one or more
// calls to addPage() was successful. You should always check for successful
// calls to start() and addPage() before calling send().
my_pj.send();
}
No puede crear un segundo objeto PrintJob mientras el primero continúa activo. Si crea un segundo objeto PrintJob (llamando a new PrintJob()), aunque continúe activo el primer objeto PrintJob, el segundo objeto no se creará. Por lo tanto, puede comprobar el valor my_pj antes de crear un segundo objeto PrintJob.
IllegalOperationError — Emite una excepción si hay otro objeto PrintJob aún activo.
|
Véase también
| addPage | () | método |
public function addPage(sprite:Sprite, printArea:Rectangle = null, options:PrintJobOptions = null, frameNum:int = 0):void
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9. |
Envía el objeto Sprite especificado como página individual a la cola de impresión. Antes de utilizar este método, es necesario crear un objeto PrintJob y, a continuación, utilizar PrintJob.start(). A continuación, después de llamar a PrintJob.addPage() una o varias veces para un trabajo de impresión, utilice PrintJob.send() para enviar las páginas de la cola de impresión a la impresora. Dicho de otro modo, tras crear un objeto PrintJob, utilice (en el orden siguiente) PrintJob.start(), PrintJob.addPage() y PrintJob.send() para enviar el trabajo de impresión a la impresora. Puede utilizar PrintJob.addPage() varias veces después de una sola llamada a PrintJob.start() para imprimir varias páginas al mismo tiempo.
Si PrintJob.addPage() obliga a Flash Player a emitir una excepción (por ejemplo, si no ha llamado a PrintJob.start() o el usuario ha cancelado el trabajo de impresión), las siguientes llamadas a PrintJob.addPage() fallarán. No obstante, si las llamadas anteriores a PrintJob.addPage() se han realizado correctamente, el comando final PrintJob.send() enviará las páginas que se han situado correctamente en la cola a la impresora.
Si el trabajo de impresión tarda más de 15 segundos en completar una operación PrintJob.addPage(), Flash Player emitirá una excepción en la siguiente llamada a Print.addPage().
Si pasa un valor para el parámetro printArea, las coordenadas x e y del objeto printArea corresponderán a la esquina superior izquierda (coordenadas 0,0) del área imprimible de la página. El área imprimible se describe mediante las propiedades de sólo lectura pageHeight y pageWidth definidas por PrintJob.start(). Dado que la impresión se alinea con la esquina superior izquierda del área imprimible de la página, si el área definida en printArea es superior al área imprimible de la página, la impresión se recortará por la derecha o por abajo (o por ambos lados) del área definida por printArea. Si no pasa un valor para printArea y el escenario es mayor que el área imprimible, se producirá el mismo tipo de recorte.
Si desea redimensionar un objeto Sprite antes de imprimirlo, defina las propiedades (consulte flash.display.DisplayObject.scaleX y flash.display.DisplayObject.scaleY) antes de llamar a este método y vuelva a definir sus valores originales. La escala de un objeto Sprite no tiene relación con printArea. Es decir, si especifica un área de impresión de 50 x 50 píxeles, se imprimirán 2.500 píxeles. Si cambia la escala del objeto Sprite, se seguirán imprimiendo 2.500 píxeles, pero el objeto Sprite se imprimirá con el tamaño escalado.
La función de impresión de Flash Player admite las impresoras PostScript, entre otras. Las impresoras que no son PostScript convierten los vectores en mapas de bits.
Parámetros
sprite:Sprite — Nombre de instancia del objeto Sprite que se va a imprimir.
|
|
printArea:Rectangle (default = null) — Un objeto Rectangle que especifica el área que se va a imprimir.
La anchura y la altura de un rectángulo son valores expresados en píxeles. Una impresora utiliza los puntos como unidad de medida de impresión. Los puntos tienen un tamaño físico fijo (1/72 pulgadas), pero el tamaño de un píxel en pantalla depende de la resolución de cada pantalla. Así, la relación de conversión entre píxeles y puntos depende de la configuración de la impresora y del hecho de que el objeto Sprite esté escalado. Un objeto Sprite sin escalar de 72 píxeles de ancho se imprimirá con una anchura de una pulgada, cada punto equivaldrá a un píxel, independientemente de la resolución de la pantalla. Puede utilizar las equivalencias siguientes para convertir los valores en pulgadas o centímetros en twips o puntos (un twip es 1/20 de un punto):
Si se omite o pasa de forma incorrecta el parámetro Si no desea especificar un valor para |
|
options:PrintJobOptions (default = null) — Parámetro opcional que especifica si se imprime como vector o como mapa de bits. El valor predeterminado es null, que representa una solicitud de impresión vectorial. Para imprimir sprite como un mapa de bits, defina la propiedad printAsBitmap del objeto PrintJobOptions como true. Recuerde las sugerencias siguientes al determinar si definirá printAsBitmap como true:
Si se omite o pasa de forma incorrecta |
|
frameNum:int (default = 0) — Número que permite especificar el fotograma que se va a imprimir. Si pasa un frameNum, no se invocará ActionScript en ese fotograma. Si omite este parámetro, se imprime el fotograma actual en sprite.
Nota: si antes ha utilizado |
Error — Emite una excepción si no se ha llamado a PrintJob.start() o si el usuario ha cancelado el trabajo de impresión.
|
Véase también
| send | () | método |
public function send():void
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9. |
Envía páginas a la cola de impresión tras comprobar que PrintJob.start() y PrintJob.addPage() se han recibido correctamente. Las llamadas a PrintJob.send() no serán correctas si falla la llamada a PrintJob.start(), o bien si PrintJob.addpage() emite una excepción. Por lo tanto, debe comprobar que PrintJob.start() devuelve true y capturar cualquier excepción de PrintJob.addpage() antes de llamar a PrintJob.send(). Por ejemplo:
var my_pj:PrintJob = new PrintJob();
if (my_pj.start()) {
try {
my_pj.addPage([params]);
}
catch(e:Error) {
// gestionar error
}
my_pj.send();
}
Véase también
| start | () | método |
public function start():Boolean
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9. |
Muestra el cuadro de diálogo Imprimir del sistema operativo, inicia el envío a la cola de impresión y define los valores de la propiedad de sólo lectura del objeto PrintJob. El cuadro de diálogo Imprimir permite al usuario cambiar la configuración de impresión. Si se devuelve correctamente el método PrintJob.start() (el usuario hace clic en Aceptar en el cuadro de diálogo Imprimir), se llenarán las siguientes propiedades de sólo lectura para representar la configuración de impresión del usuario actual:
| Propiedad | Tipo | Unidades | Notas |
|---|---|---|---|
PrintJob.paperHeight | Number | Puntos | Altura total del papel. |
PrintJob.paperWidth | Number | Puntos | Anchura total del papel. |
PrintJob.pageHeight | Number | Puntos | Altura del área imprimible real de la página; los márgenes establecidos por el usuario no se tendrán en cuenta. |
PrintJob.pageWidth | Number | Puntos | Anchura del área imprimible real de la página; los márgenes establecidos por el usuario no se tendrán en cuenta. |
PrintJob.orientation | String | "portrait" (flash.printing.PrintJobOrientation.PORTRAIT) u "landscape" (flash.printing.PrintJobOrientation.LANDSCAPE). |
Nota: si el usuario cancela el cuadro de diálogo Imprimir, no se llenarán las propiedades.
Una vez que el usuario hace clic en Aceptar en el cuadro de diálogo Imprimir, el reproductor comienza a enviar el trabajo de impresión a la cola del sistema operativo. Como el sistema operativo comienza a mostrar al usuario información sobre el progreso de la impresión, se debe llamar a PrintJob.addPage() y PrintJob.send() en cuanto sea posible para enviar páginas a la cola de impresión. Puede utilizar las propiedades de sólo lectura height, width y orientation que llena este método para dar formato a la impresión.
Para ver si el método devuelve true (cuando el usuario hace clic en Aceptar en el cuadro de diálogo Imprimir del sistema operativo) antes de realizar llamadas a PrintJob.addPage() y PrintJob.send():
var my_pj:PrintJob = new PrintJob();
if(my_pj.start()) {
// las sentencias addPage() y send() van aquí
}
En la instancia del trabajo de impresión especificada, si alguno de los siguientes intervalos dura más de 15 segundos, la siguiente llamada a PrintJob.start() devolverá false:
PrintJob.start() y el primer PrintJob.addPage()PrintJob.addPage() y el siguiente PrintJob.addPage()PrintJob.addPage() y PrintJob.send()Boolean — Un valor true si el usuario hace clic en Aceptar cuando aparece el cuadro de diálogo Imprimir, false si el usuario hace clic en Cancelar o si se produce un error.
|
Véase también
PrintJobExample para crear un documento pequeño y enviarlo a la impresora. Esto se consigue con los pasos siguientes:
sheet1 y sheet2.init(), lo que asignará una nueva instancia Sprite a sheet1 y sheet2 y, a continuación, llame a createSheet() utilizando argumentos diferentes.createSheet() realiza lo siguiente:
txt con las mismas dimensiones que Sprite, se define la propiedad wordWrap como true y se define la propiedad de texto como la cadena pasada como argumento a createSheet().img, que se utilizará para dibujar un rectángulo de color blanco con las propiedades de coordenadas y dimensiones del argumento Object pasado. El rectángulo blanco se añade a la lista de visualización del objeto Sprite utilizando addChild().txt a la lista de visualización del objeto Sprite utilizando addChild().printOnePerPage() se describe a continuación.printOnePerPage() realiza lo siguiente:
pj y pagesToPrint como elemento uint.Aceptar.sheet1 y sheet2.sheet1 y sheet2 a la cola de impresión utilizando addPage().draw(), que modifica el tamaño de las dos propiedades Sprite para ajustarlas al escenario y cambia la posición de sheet2 para que se sitúe justo a la derecha de sheet1.Nota: el constructor se ha configurado de modo que sea posible seleccionar, en función de las preferencias, uno de los tres métodos de impresión (una hoja por página, dos hojas por página o imprimir en la mitad superior de la página). Este ejemplo no funcionará correctamente a menos que se desactiven exactamente dos de los métodos de impresión mediante comentarios de código. El ejemplo se ha configurado de modo que se llame a printOnePerPage().
package {
import flash.printing.PrintJob;
import flash.printing.PrintJobOrientation;
import flash.display.Stage;
import flash.display.Sprite;
import flash.text.TextField;
import flash.geom.Rectangle;
public class PrintJobExample extends Sprite {
private var sheet1:Sprite;
private var sheet2:Sprite;
public function PrintJobExample() {
init();
printOnePerPage();
// printTwoPerPage();
// printTopHalf();
draw();
}
private function init():void {
sheet1 = new Sprite();
createSheet(sheet1, "Once upon a time...", {x:10, y:50, width:80, height:130});
sheet2 = new Sprite();
createSheet(sheet2, "There was a great story to tell, and it ended quickly.\n\nThe end.", null);
}
private function createSheet(sheet:Sprite, str:String, imgValue:Object):void {
sheet.graphics.beginFill(0xEEEEEE);
sheet.graphics.lineStyle(1, 0x000000);
sheet.graphics.drawRect(0, 0, 100, 200);
sheet.graphics.endFill();
var txt:TextField = new TextField();
txt.height = 200;
txt.width = 100;
txt.wordWrap = true;
txt.text = str;
if(imgValue != null) {
var img:Sprite = new Sprite();
img.graphics.beginFill(0xFFFFFF);
img.graphics.drawRect(imgValue.x, imgValue.y, imgValue.width, imgValue.height);
img.graphics.endFill();
sheet.addChild(img);
}
sheet.addChild(txt);
}
private function printOnePerPage():void {
var pj:PrintJob = new PrintJob();
var pagesToPrint:uint = 0;
if(pj.start()) {
if(pj.orientation == PrintJobOrientation.LANDSCAPE) {
throw new Error("Without embedding fonts you must print one sheet per page with an orientation of portrait.");
}
sheet1.height = pj.pageHeight;
sheet1.width = pj.pageWidth;
sheet2.height = pj.pageHeight;
sheet2.width = pj.pageWidth;
try {
pj.addPage(sheet1);
pagesToPrint++;
}
catch(e:Error) {
// do nothing
}
try {
pj.addPage(sheet2);
pagesToPrint++;
}
catch(e:Error) {
// do nothing
}
if(pagesToPrint > 0) {
pj.send();
}
}
}
private function printTwoPerPage():void {
var pj:PrintJob = new PrintJob();
var pagesToPrint:uint = 0;
if(pj.start()) {
if(pj.orientation == PrintJobOrientation.PORTRAIT) {
throw new Error("Without embedding fonts you must print two sheets per page with an orientation of landscape.");
}
sheet1.height = pj.pageHeight;
sheet1.width = pj.pageWidth/2;
sheet2.height = pj.pageHeight;
sheet2.width = pj.pageWidth/2;
var sheets:Sprite = new Sprite();
sheets.addChild(sheet1);
sheets.addChild(sheet2);
sheets.getChildAt(1).x = sheets.getChildAt(0).width;
try {
pj.addPage(sheets);
pagesToPrint++;
}
catch(e:Error) {
// do nothing
}
if(pagesToPrint > 0) {
pj.send();
}
}
}
private function printTopHalf():void {
var pj:PrintJob = new PrintJob();
var pagesToPrint:uint = 0;
if(pj.start()) {
if(pj.orientation == PrintJobOrientation.PORTRAIT) {
throw new Error("Without embedding fonts you must print the top half with an orientation of landscape.");
}
sheet1.height = pj.pageHeight;
sheet1.width = pj.pageWidth/2;
sheet2.height = pj.pageHeight;
sheet2.width = pj.pageWidth/2;
var sheets:Sprite = new Sprite();
sheets.addChild(sheet1);
sheets.addChild(sheet2);
sheets.getChildAt(1).x = sheets.getChildAt(0).width;
try {
pj.addPage(sheets, new Rectangle(0, 0, sheets.width, sheets.height/2));
pagesToPrint++;
}
catch(e:Error) {
// do nothing
}
if(pagesToPrint > 0) {
pj.send();
}
}
}
private function draw():void {
var sheetWidth:Number = this.stage.stageWidth/2;
var sheetHeight:Number = this.stage.stageHeight;
addChild(sheet1);
sheet1.width = sheetWidth;
sheet1.height = sheetHeight;
addChild(sheet2);
sheet2.width = sheetWidth;
sheet2.height = sheetHeight;
sheet2.x = sheet1.width;
}
}
}
Enviarme un mensaje de correo electrónico cuando se añadan comentarios a esta página | Informe de comentarios
Página actual: http://livedocs.adobe.com/flash/9.0_es/ActionScriptLangRefV3/flash/printing/PrintJob.html