Técnicas avançadas de impressão

Adobe AIR 2 e posterior

Desde o Adobe AIR 2, a classe PrintJob possui propriedades adicionais, métodos e suporte a três classes adicionais: PrintUIOptions, PaperSize e PrintMethod. Essas mudanças permitem adicionar novos fluxos de trabalho de impressora e permite que os autores tenham um controle maior sobre o processo de impressão. As modificações incluem:

  • Diálogos de configuração de página: os diálogos padrão e personalizado podem ser exibidos. O usuário pode definir intervalos de páginas, tamanho do papel e o dimensionamento antes de imprimir.

  • Visualização da impressão: um modo de visualização pode ser criado para exibir com precisão o tamanho do papel, margens e o a posição do conteúdo na página.

  • Impressão restrita: os autores podem restringir as opções de impressão como, por exemplo, o intervalo de páginas que podem ser impressas.

  • Opções de qualidade: os autores podem ajustar a qualidade da impressão para um documento e permitir que o usuário selecione a resolução e opções de cor.

  • Diversas sessões de impressão: uma instância única PrintJob pode ser utilizada para diversas sessões de impressão. Os aplicativos podem fornecer configurações consistentes a cada momento em que as configurações de página e diálogos de impressão são exibidos.

Alterações no fluxo de trabalho de impressão

O fluxo de trabalho de uma impressão nova consiste nas seguintes etapas:

  • new PrintJob() : Cria uma instância PrintJob (ou reutiliza uma instância existente). Diversas propriedades PrintJob e métodos como, por exemplo, selectPaperSize() estão disponíveis antes da tarefa de impressão iniciar ou durante a impressão.

  • PrintJob.showPageSetupDialog() : (opcional) Exibe o diálogo de configuração da página sem iniciar uma tarefa de impressão.

  • PrintJob.start() ou PrintJob.start2() : Além do método start() , o novo método start2() é utilizado para iniciar o processo de spooling de impressão. O método start2() permite selecionar quando o diálogo de Impressão e personalizar o diálogo quando ele é exibido.

  • PrintJob.addPage() : Adicionar conteúdo à tarefa de impressão. Sem modificações no processo existente.

  • PrintJob.send() ou PrintJob.terminate() : Envia as páginas para a impressora selecionada ou encerra o tarefa de impressão sem enviar. As tarefas de impressão são encerradas em resposta a um erro. Se uma instância PrintJob é encerrada, ela ainda pode ser reutilizada. Independentemente da tarefa de impressão ser enviada para a impressora ou encerrada, as configurações atuais de impressão são mantidas quando a instância PrintJob é reutilizada.

Caixa de diálogo Configurar Página

O método showPageSetupDialog() exibe o diálogo de Configuração de impressão do sistema, se o ambiente atual tiver suporte. Sempre verifique a propriedade supportsPageSetupDialog antes de chamar este método. A seguir, um exemplo simples:

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

Opcionalmente, o método pode ser chamado com uma classe PrintUIOptions propriedade para controlar quais opções são exibidas no diálogo de Configurações de impressão. O número mínimo e máximo de páginas que pode ser definido. O exemplo a seguir limita a impressão para as três primeiras 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); 
}

Alteração das configurações de impressão

As configurações da instância PrintJob podem ser alteradas a qualquer momento após ela ser construída. Isto inclui alterar configurações entre chamadas addPage() e após a tarefa de impressão ter sido enviada ou encerrada. Algumas configurações como a propriedade printer , aplicam-se à tarefa de impressão toda e não a páginas individuais. Algumas configurações devem ser definidas antes de uma chamada para start() ou start2() .

O método selectPaperSize() pode ser chamado para definir o tamanho de papel padrão nos diálogos de Configurações da página e Configurações de impressão. Ele também pode ser chamado durante uma tarefa de impressão para definir o tamanho do papel para um intervalo de páginas. Ele é chamado por constantes definidas na classe PaperSize como nestes exemplo, que seleciona um número 10 de tamanho de envelope:

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

Utilize a propriedade printer para obter ou definir o nome da impressora para o trabalho atual. Por padrão, isto é definido com o nome da impressora padrão. A propriedade printer é null nenhuma impressora estiver disponível ou o sistema não tiver suporte à impressão. Para alterar a impressora, primeiro obtenha uma lista de impressoras disponíveis utilizando a propriedade printers . Essa propriedade é um Vetor cujo os elementos de Sequência de caracteres são os nomes das impressoras disponíveis. Defina a propriedade printer para um desses valores de Sequência de caracteres para tornar a impressora ativa. A propriedade printer de um trabalho de impressão ativo não pode ser modificada. Tenta mudar após uma chamada com sucesso para start() ou start2() e antes da tarefa ser enviada ou o terminal falhar. Segue um exemplo de configuração dessa propriedade:

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

A propriedade copies obtém o valor do número de cópias definidas no diálogo Imprimir do sistema operacional. As propriedades firstPage e lastPage obtém o intervalo de páginas. A propriedade orientation obtém as configurações de orientação de página. Essas propriedades podem ser definidas para sobrescrever os valores do diálogo Imprimir. O exemplo a seguir define essas propriedades:

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;

A configuração somente leitura a seguir associada com PrintJob fornece informações úteis sobre a configuração atual da impressora:

  • paperArea : representa em pontos os limites retangulares do papel da impressora.

  • printableArea : representa em pontos os limites retangulares da área que pode ser impressa.

  • maxPixelsPerInch : representa em pixels por polegada a resolução física da impressora atual.

  • isColor : A habilidade da impressora de imprimir em cores (retorna true se a impressora pode imprimir em cores).

Consulte Exemplo de impressão: configuração de página e opções de impressão .