Configuração de tamanho, escala e orientaçãoFlash Player 9 e posterior, Adobe AIR 1.0 e posterior A seção Impressão de uma página fornece detalhes das etapas de um trabalho de impressão básico, em que a saída reflete diretamente o equivalente impresso do tamanho e posição da tela da entidade gráfica especificada. No entanto as impressoras usam resoluções diferentes para impressão e podem ter configurações que afetam contrariamente a aparência da entidade gráfica impressa. Os tempos de execução do Flash podem ler configurações de impressão de um sistema operacional, mas observe que essas propriedades são somente leitura: embora você possa responder a seus valores, não pode defini-los. Portanto, por exemplo, você pode localizar a configuração de tamanho da página da impressora e ajustar seu conteúdo para se adequar ao tamanho. Também é possível determinar as configurações de margem e de orientação da página da impressora. Para responder às configurações da impressora, especifique uma área de impressão, ajuste a diferença entre a resolução da tela e as medidas de ponto da impressora ou transforme o conteúdo para atender às configurações de tamanho ou de orientação da impressora do usuário. Uso de retângulos para a área de impressãoO método PrintJob.addPage() permite especificar a região de uma entidade gráfica que você deseja que seja impressa. O segundo parâmetro, printArea, está na forma de um objeto Rectangle. Há três opções para fornecer um valor para esse parâmetro:
Comparação de pontos e pixelsA largura e a altura do retângulo são valores em pixels. Uma impressora usa pontos como unidades de medida de impressão. Os pontos têm tamanho físico fixo (1/72 polegadas), mas o tamanho de um pixel na tela depende da resolução da tela específica. A taxa de conversão entre pixels e pontos depende das configurações da impressora e se a entidade gráfica está dimensionada. Um sprite não dimensionado, com 72 pixels de largura, terá uma polegada de largura na impressão, com um ponto igual a um pixel, independentemente da resolução da tela. Você pode usar as equivalências a seguir para converter polegadas ou centímetros em twips (1/20 de um ponto) ou pontos:
Se você omitir o parâmetro printArea, ou se ele for passado incorretamente, a área total da entidade gráfica será impressa. EscalaPara dimensionar um objeto Sprite antes de imprimi-lo, defina as propriedades da escala (consulte Manipulação do tamanho e dimensionamento de objetos) antes de chamar o método PrintJob.addPage() e defina-as novamente como seus valores originais após a impressão. A escala de um objeto Sprite não tem nenhuma relação com a propriedade printArea. Em outras palavras, se você especificar uma área de impressão de 50 x 50 pixels, serão impressos 2500 pixels. Se você dimensionar o objeto Sprite, serão impressos os mesmos 2500 pixels, mas o objeto Sprite será impresso no tamanho dimensionado. Para obter um exemplo, consulte Exemplo de impressão: escala, corte e resposta. Impressão de orientação paisagem ou retratoComo o Flash Player e o AIR podem detectar as configurações de orientação, você pode criar lógica no ActionScript para ajustar o tamanho ou a rotação do conteúdo em resposta às configurações da impressora, conforme ilustrado no exemplo a seguir: if (myPrintJob.orientation == PrintJobOrientation.LANDSCAPE)
{
mySprite.rotation = 90;
}
Nota: Se você planeja ler a configuração do sistema para obter a orientação do conteúdo no papel, lembre-se de importar a classe PrintJobOrientation. A classe PrintJobOrientation fornece valores de constante que definem a orientação do conteúdo na página. Importe a classe usando a seguinte instrução:
import flash.printing.PrintJobOrientation; Resposta à altura e largura da páginaUsando uma estratégia semelhante à manipulação das configurações de orientação da impressora, você pode ler as configurações de altura e largura da página e responder a elas incorporando alguma lógica em uma instrução if. O código a seguir mostra um exemplo: if (mySprite.height > myPrintJob.pageHeight)
{
mySprite.scaleY = .75;
}
Além disso, as configurações da margem de uma página podem ser determinadas comparando as dimensões da página e do papel, conforme ilustrado no exemplo a seguir: margin_height = (myPrintJob.paperHeight - myPrintJob.pageHeight) / 2; margin_width = (myPrintJob.paperWidth - myPrintJob.pageWidth) / 2; |
|