`
lorry1113
  • 浏览: 256665 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Flex中的Printing

    博客分类:
  • flex
阅读更多
主要由以下几个步骤组成。
1、创建一个FlexPrintJob对象
var printJob:FlexPrintJob = new FlexPrintJob();
2、开始打印
printJob.start();
调用这句会显示操作系统打印对话框。如果确定则返回为true,取消则为false
3、添加需要打印的对象到printJob中。同时指定打印时的缩放原则。
printJob.addObject(myObject, FlexPrintJobScaleType.MATCH_WIDTH);
addObject一次就是一张打印页
4、派发打印任务到打印机
printJob.send();
5、释放所有不需要的对象
一般情况下可以在start和send方法之间调用一些配置界面设置缩放原则type,
而且这两者之间应该尽可能少的操作
缩放Type介绍

在讲这个之前先说一下这个缩放根据的依据
缩放比例,之所以称作比例肯定是一个值跟另外一个值相除得到的结果
我们知道一个肯定是object的size,另外一个是什么呢,当然就是纸张的size
printJob有两个属性pageHeight和pageWidth,在调用start之前,这两个值都是0,当调用了start,弹出打印对话框,对打印选项进行设置以后,Flash Player or AIR会从操作系统检索打印设置,然后对其进行赋值。
pageHeight:纸张可打印区域的高度,不包括用户设置的边缘
pageWidth:纸张可打印区域的宽度,不包括用户设置的边缘(纸张宽度-边缘)
这两个值的单位都是像素数,一个像素相当于一英寸的1/72,
比如一般的A4纸,pageWidth一般是566,相当于7.86英寸,而A4纸的宽度是8.27英寸,其余的部分为边缘区域0.41英寸,大约为1.04厘米。

MATCH_WIDTH 宽度适配
这个是默认值,缩放对象使宽度填充整张纸的可用宽度(),如果缩放以后对象的高度超出纸张的高度,则自动分为多页打印
MATCH_HEIGHT 高度适配
缩放打印对象使其高度填充整张纸的可用高度,如果缩放以后的宽度超出纸张的宽度,则自动分多页打印
SHOW_ALL 全图适配
缩放打印对象使其打印在一张纸上,至少填充一边,选择MATCH_WIDTH 和 MATCH_HEIGHT比例小者作为缩放比例,即按比例缩放打印对象,直至两边都能显示在一张纸范围内。
FILL_PAGE 填充适配
缩放打印对象使其填充整张纸,选择MATCH_WIDTH 和 MATCH_HEIGHT比例大者作为缩放比例,即填充满整张纸,不会有空白区域,在此缩放比例下,可能会出现分页打印的情况发生。
NONE 不缩放适配
不对打印对象进行缩放,打印纸张和在屏幕上显示的一样大小。超出范围的对象自动分多页打印
  var widthRatio:Number = _pageWidth / objWidth;
            var heightRatio:Number = _pageHeight / objHeight; 

            var ratio:Number = 1; 

            if (scaleType == FlexPrintJobScaleType.SHOW_ALL) {
                // Smaller of the two ratios for showAll.
                ratio = (widthRatio < heightRatio) ? widthRatio : heightRatio;
            }
            else if (scaleType == FlexPrintJobScaleType.FILL_PAGE) {
                // Bigger of the two ratios for fillPage.
                ratio = (widthRatio > heightRatio) ? widthRatio : heightRatio;
            }
            else if (scaleType == FlexPrintJobScaleType.NONE) {
            }
            else if (scaleType == FlexPrintJobScaleType.MATCH_HEIGHT) {
                ratio = heightRatio;
            }
            else {
                ratio = widthRatio;
            } 

            // Scale it to the required value.
            obj.scaleX *= ratio;
            obj.scaleY *= ratio;

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics