主要由以下几个步骤组成。
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;
分享到:
相关推荐
在Flex中,打印功能主要通过`flash.printing.PrintJob`类来实现,这个类提供了与打印相关的各种方法和属性,使得开发者可以定制打印任务,包括选择打印机、设置页面布局、添加要打印的内容等。 首先,让我们深入...
Flex内置了`flash.printing.PrintJob`类,提供了基本的打印功能。通过这个类,开发者可以设置打印参数,如页面范围、边距、颜色模式等,并将显示在舞台上的内容发送到打印机。 二、创建打印预览 1. 创建PrintJob...
首先,我们要了解Flex中的`mx.printing`包,这个包提供了打印相关的类和接口,如`PrinterJob`、`PrintPage`和`IFlexPrintElement`等。`PrinterJob`类是打印操作的核心,它负责管理打印任务,包括设置打印参数、添加...
2. **Flex打印服务**: Flex框架内建了打印服务,允许开发者通过`flash.printing.PrintJob`类来创建和管理打印任务。这个类提供了添加页面、设置页面大小、选择打印机等方法。 3. **FlexReport组件**: 压缩包中的`...
AlivePDF是一款功能强大的PDF生成库,它支持在Flex应用中创建高质量的PDF文档。AlivePDF提供了丰富的API接口,允许开发者自定义PDF的内容布局、字体样式、颜色、图像等元素,从而满足各种复杂的应用场景需求。 ####...
Flex 4.5 打印功能是 Adobe Flex 开发框架中的一个重要组成部分,它允许开发者创建具有打印和打印预览功能的富互联网应用程序(RIA)。在 Flex 4.5 中,打印功能得到了显著增强,提供了更加灵活和精细的控制,使得...
在Flex中,打印功能主要依赖于`flash.printing.PrintJob`类,这个类提供了创建和管理打印作业的方法。下面我们将详细探讨Flex打印的核心知识点: 1. **PrintJob类**:`flash.printing.PrintJob`是Flex中处理打印...
2. **Flex打印API**:介绍Flex SDK中用于打印的API,如`flash.printing.PrintJob`类,以及如何设置打印参数,如纸张大小、方向等。 3. **Flex组件布局**:如何调整Flex组件以适应打印需求,例如创建适合打印的布局...
首先,Flex打印功能的实现依赖于`flash.printing.PrintJob`类。这个类提供了创建、设置和执行打印任务的方法。例如,`start()`方法启动打印作业,`addPage()`用于添加要打印的位图或显示对象,而`send()`则将所有...
在Flex编程环境中,ArcGIS for Flex是Esri公司为Adobe Flex开发者设计的一套API,用于构建交互式的Web GIS应用程序。本文将深入探讨ArcGIS for Flex中的“打印”功能,以及如何在项目中实现这一功能。 首先,我们要...
Flex中的打印预览通常通过Flex SDK中的`mx.printing`包来实现。这个包提供了`PrintJob`类,它是实现打印操作的核心。开发者可以使用`PrintJob`对象来添加要打印的组件或位图,设置打印范围,以及自定义打印选项。...
一种常见的方法是利用Adobe Flex SDK中的`flash.printing.PrintJob`类来创建打印作业。首先,我们需要创建一个PrintJob对象,并设置打印参数,如页面大小、方向等。然后,将Datagrid的内容转换为BitmapData对象,...
在Flex中,打印主要通过`flash.printing`命名空间下的类和方法来实现。其中,`PrinterJob`类是核心,它提供了开启打印作业、设置打印参数和发送数据到打印机的基本功能。以下是一些关于Flex Print的重要知识点: 1....
如果确实需要使用,建议保持与 Flex 项目中的一致性。 - **通用缩写**:例如 `acc` (accessibility)、`auto` (automatic)、`impl` (implementation)、`info` (information)、`num` (number)、`min` (minimum)、`max`...
1. a book Developing Flex Applications 2. a web page viewer for doc88 ebt 3. a DDA downloader for doc88.com CONTENTS PART I: Presenting Flex CHAPTER 1: Introducing Flex. . . . . . . . . . . . . . ...
1. **Flex打印API**:Flex提供了`flash.printing.PrintJob`类来实现打印功能。开发者可以通过创建PrintJob对象,添加要打印的内容,然后调用start()方法来启动打印任务。 2. **DataGrid的复制和转换**:由于直接...
例如,TD043章节提供了关于打印定期存款证书(TDCertificate Printing)的流程,这涉及到如何生成和打印存款证明文件,这在银行系统中是一项重要的操作。同样,TDM24章节讨论了抵押权维护(LienMaster Maintenance)...
- FIX: When the curve contain more then one figure and they were all unconfined and curve have alternative brush then whole flex-object bounding rectangle was filed. - FIX: The MaskColor property ...
喷墨型电路技术,如Ink Jet Printing,能够将线路的解析度从数百微米提升至数十微米,这不仅解决了传统印刷工艺的精度问题,也为绿色环保制程提供了可能。因为喷墨技术可以减少材料的浪费,简化制程步骤,降低能源...