Em alguns casos, você pode desejar ajustar o tamanho (ou outras propriedades) do objeto de exibição durante a impressão para acomodar diferenças entre a forma como ele é exibido na tela e como é impresso no papel. Quando você ajusta as propriedades de um objeto de exibição antes da impressão (por exemplo, usando as propriedades
scaleX
e
scaleY
), lembre-se de que, se o objeto tiver a escala maior do que o retângulo definido para a área de impressão, ele será cortado. Talvez você também queira redefinir as propriedades depois que as páginas foram impressas.
O código a seguir escala as dimensões do objeto de exibição
txt
(mas não o plano de fundo da caixa verde) e o campo de texto acaba sendo cortado pelas dimensões do retângulo especificado. Após a impressão, o campo de texto volta ao seu tamanho original para exibição na tela. Se o usuário cancelar o trabalho de impressão da caixa de diálogo Imprimir do sistema operacional, o conteúdo no tempo de execução do Flash será alterado para alertar o usuário de que o trabalho foi cancelado.
package
{
import flash.printing.PrintJob;
import flash.display.Sprite;
import flash.text.TextField;
import flash.display.Stage;
import flash.geom.Rectangle;
public class PrintScaleExample extends Sprite
{
private var bg:Sprite;
private var txt:TextField;
public function PrintScaleExample():void
{
init();
draw();
printPage();
}
private function printPage():void
{
var pj:PrintJob = new PrintJob();
txt.scaleX = 3;
txt.scaleY = 2;
if (pj.start())
{
trace(">> pj.orientation: " + pj.orientation);
trace(">> pj.pageWidth: " + pj.pageWidth);
trace(">> pj.pageHeight: " + pj.pageHeight);
trace(">> pj.paperWidth: " + pj.paperWidth);
trace(">> pj.paperHeight: " + pj.paperHeight);
try
{
pj.addPage(this, new Rectangle(0, 0, 100, 100));
}
catch (error:Error)
{
// Do nothing.
}
pj.send();
}
else
{
txt.text = "Print job canceled";
}
// Reset the txt scale properties.
txt.scaleX = 1;
txt.scaleY = 1;
}
private function init():void
{
bg = new Sprite();
bg.graphics.beginFill(0x00FF00);
bg.graphics.drawRect(0, 0, 100, 200);
bg.graphics.endFill();
txt = new TextField();
txt.border = true;
txt.text = "Hello World";
}
private function draw():void
{
addChild(bg);
addChild(txt);
txt.x = 50;
txt.y = 50;
}
}
}
|
|
|