打印示例:缩放、裁剪和响应Flash Player 9 和更高版本,Adobe AIR 1.0 和更高版本 在某些情况下,打印时您希望调整显示对象的大小(或其他属性),以消除显示对象在屏幕上与打印纸张上的显示差异。在打印之前调整显示对象的属性时(例如,通过使用 scaleX 和 scaleY 属性),请注意,如果对象缩放后大于为打印区域定义的矩形,则会裁剪此对象。页面打印完毕后,您可能还需要重置属性。 以下代码缩放 txt 显示对象(但不缩放绿色框背景)的尺寸,最终按照指定矩形的尺寸对文本字段进行裁剪。打印后,文本字段将返回到在屏幕上显示的原始大小。如果用户从操作系统的“打印”对话框中取消打印作业,Flash 运行时中的内容将更改以警告用户此作业已取消。 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; } } } |
|