大致分为3类:
1. 原生打印利用Applet或Flash Player等插件提供的打印接口进行打印。优点是跨平台跨浏览器,常见的有Applet和Flex
2. 宿主打印使用浏览器提供的打印接口,有HTML(将呈现的html输出到打印机);ActiveX+HTML(使用js调用ActiveX完成打印)
3. 外部打印生成目标文档,如pdf、office打印,使用文档的宿主程序打开并打印
类别 | 方案 | 优点 | 缺点 |
原生打印 | JavaApplet | 能够选择打印机,设置纸张,页边距等参数;打印图片、swing组件等;多页打印效率高;延迟生成打印内容 | 客户端要安装JRE |
Flex | 打印Flex中的可视化组件,多页打印效率高;延迟生成打印内容 | 不能够选择打印机,设置纸张,页边距等参数; | |
宿主打印 | HTML | 能打印HTML页面,可通过CSS控制页面的打印方式 | 需要事先设置好打印内容,多页打印时可能页面过大 |
ActiveX+HTML | 通过程序设置打印机等参数 | 需下载额外的插件,需要事先设置好打印内容,多页打印时可能页面过大 | |
外部打印 | Pdf office |
| 要安装相应的工具软件,多页打印页面过大 |
使用PrintJob打印
只要页面上能显示,则Flex就能打印出来。
使用PrintJob打印
Var job=new PrintJob();
job.addPage(sprite:Sprite,printArea:Rectangle=null,options:PrintJobOptions=null,frameNum:int=0):void
sprite代表要打印的内容,必须位于displayList,打印时会忽略sprite的vlisibile属性
printArea: 代表打印范围
options:指示打印位图还是矢量图,如果无位图图片,选择矢量图
frameNum: 帧数,不指定
job.send();