AS3使用PrintJob实现单页或多页打印
来源:互联网 发布:西南交大网络教学 编辑:程序博客网 时间:2024/05/21 09:22
as3实现打印功能:
主要用到PrintJob类中的start()、addPage(mc:sprite,rect,option)、send()三个方法。
单页打印代码
- 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();
- }
- }
- }
多页打印代码
- 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();
- }
- }
- }
- }
- }
多页打印效果图:
0 0
- AS3使用PrintJob实现单页或多页打印
- AS3使用PrintJob实现单页或多页打印
- AS3使用PrintJob实现单页或多页打印
- 通过PrintJob设置打印属性?
- AS3 PrintJob 缩放、裁剪和拼接
- 使用类PrintJob进行打印操作时,应如何设置打印机名等?
- flex 带打印预览功能的PrintJob
- flex 带打印预览功能的PrintJob
- as3单例模式实现
- AS3实现单例模式举例
- 使用原生Js实现打印单组乘法表
- Silverlight4 多页打印实现
- as3的单例模式有两种实现方式
- 用as3实现组件或屏幕的抖动效果
- 用as3实现组件或屏幕的抖动效果
- 使用VBS实现打印页眉和页脚设置
- C# 多页打印简单实现
- AS3 打印一首诗
- 独立开发者的自白:Objective-C最糟糕的13件事
- 热键的实现
- java调用系统程序
- SharePoint 2013 入门教程 [不断更新~]
- 《帝国战舰》
- AS3使用PrintJob实现单页或多页打印
- OpenCart之最新商品(Latest)模块教程
- Linux视频设备驱动常用控制命令使用说明
- weak_ptr
- spring web.xml配置有话说
- 恒大输给了拜仁,不丢脸
- 黑马程序员---java学习笔记之多线程
- 5个你不应该犯的可用性错误
- java版json解释器及相关代码生成