AS3使用PrintJob实现单页或多页打印
2013-12-20 16:25
357 查看
/article/10871062.html
单页打印
多页打印 ,每次printPage都要新new一个PtintJob
单页打印
package{ import flash.display.Sprite; import flash.printing.PrintJob; import flash.printing.PrintJobOptions; import flash.printing.PrintJobOrientation; import flash.geom.Rectangle; import flash.events.MouseEvent; public class BasicPrintExample extends Sprite{ private var myPrintJob:PrintJob = new PrintJob(); private var mySprite:Sprite = new Sprite(); private var options:PrintJobOptions = new PrintJobOptions(); private var rect1:Rectangle = new Rectangle(0,0,400,200); public function BasicPrintExample(){ addChild(mySprite); mySprite.addChild(mc); btn.addEventListener(MouseEvent.CLICK, btnClick); } private function btnClick(e){ printJob(); } private function printJob(){ options.printAsBitmap = true; myPrintJob.start(); myPrintJob.addPage(mySprite,rect1,options); myPrintJob.send(); } } }
多页打印 ,每次printPage都要新new一个PtintJob
package { //多页打印类 import flash.display.MovieClip; import flash.printing.PrintJob; import flash.printing.PrintJobOrientation; import flash.display.Stage; import flash.display.Sprite; import flash.text.TextField; import flash.geom.Rectangle; import flash.events.MouseEvent; public class PrintMultiplePages extends MovieClip { private var sheet1:Sprite; private var sheet2:Sprite; private var sheet3:Sprite; public function PrintMultiplePages() { // constructor code init(); btn.addEventListener(MouseEvent.CLICK, btnClick); } private function btnClick(e):void{ printPages();//打印 } 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); sheet3 = new Sprite(); createSheet(sheet3, "你好,打印第三页!",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(0x0066cc); img.graphics.drawRect(imgValue.x, imgValue.y, imgValue.width, imgValue.height); img.graphics.endFill(); sheet.addChild(img); } sheet.addChild(txt); } private function printPages():void{ var pj:PrintJob = new PrintJob(); var pagesToPrint:uint = 0; if(pj.start()){ if(pj.orientation == PrintJobOrientation.LANDSCAPE){ throw new Error("Page is not set to an orientation of portrait."); } sheet1.height = pj.pageHeight; sheet1.width = pj.pageWidth; sheet2.height = pj.pageHeight; sheet2.width = pj.pageWidth; sheet3.height = pj.pageHeight; sheet3.width = pj.pageWidth; try{ pj.addPage(sheet1); pagesToPrint++; }catch(e:Error){ //响应错误 } try{ pj.addPage(sheet2); pagesToPrint++; }catch(e:Error){ //响应错误 } try{ pj.addPage(sheet3); pagesToPrint++; }catch(e:Error){ //响应错误 } if(pagesToPrint>0){ pj.send(); } } } } }
相关文章推荐
- 完美数简介及算法分析
- MIPI 接口知识点
- LeetCode—LRU Cache解题报告
- 关机后鼠标指示灯还亮着
- 黑马程序员_java面向对象总结【1】(面向对象概述)
- 通过action 使用 request.getParameter
- VMWare在Windows 7上无法上网问题的解决方法
- Window 安全策略
- 红包地方
- Mysql -InnoDB- innodb_file_per_table
- 将字符串转化成数字
- VC 获取打印机与打印作业的状态
- Unity4.0 以上支持动态字体的研究
- 软件混音的实现
- 自己写的一个js注册拖动对象的函数
- Swing编程初步
- PHP的curl实现get,post 和 cookie(几个实例)
- php引用传值 变量函数对象的引用
- Linux下运行jar程序
- 主攻ASP.NET MVC4.0之重生:Asp.Net MVC WebApi OData