flex打印操作(FlexPrintJob)还有分页打印操作具体实现
程序员文章站
2022-06-19 12:38:37
首先要导入 import mx.printing.flexprintjob; import mx.printing.printadvanceddatagrid; 1.使用f...
首先要导入 import mx.printing.flexprintjob;
import mx.printing.printadvanceddatagrid;
1.使用flexprintjob进行打印操作
1.如果没有分页和下拉框的时候
public function doprint():void{
var printer:flexprintjob = new flexprintjob();
if(printer.start()){
printer.addobject(body);
printer.send();
}
}
这个方法即可 下面的可以使用,由于我使用的是flex3,flex3里面没有标签“printdatagrid”,只有“printadvanceddatagrid”。所以下面就使用(“printadvanceddatagrid”,“advanceddatagrid ”,“datagrid ”)这三种方式,切记上面的方式只适合于单个页面(数据较少)且没有下拉框
<mx:printadvanceddatagrid id="body" x="188" y="232">
<mx:columns>
<mx:advanceddatagridcolumn datafield="username"/>
<mx:advanceddatagridcolumn datafield="password"/>
</mx:columns>
</mx:printadvanceddatagrid>
--------------------------------------------------------------------------------------
[/code]
<mx:advanceddatagrid id="body" x="188" y="232">
<mx:columns>
<mx:advanceddatagridcolumn datafield="username"/>
<mx:advanceddatagridcolumn datafield="password"/>
</mx:columns>
</mx:advanceddatagrid>
[/code]
-----------------------------------------------------------------------------------------
<mx:datagrid id="body" x="188" y="232">
<mx:columns>
<mx:datagridcolumn datafield="username"/>
<mx:datagridcolumn datafield="password"/>
</mx:columns>
</mx:datagrid>
----------------------------------------------------------------------------------------------------------------------------------------------------------
如果要使用分页效果,则必须使用标签"printadvanceddatagrid"(flex3中的标签)才能够实现分页效果
private function doprint():void{
var printjob:flexprintjob = new flexprintjob();
if(printjob.start()){
addchild(body);
//设置的打印视图属性
while(true){
printjob.addobject(body);
if(body.validnextpage){
body.nextpage();
}else{
break;
}
}
}
printjob.send();
}
这个方法,所对应的标签是:
<mx:printadvanceddatagrid id="body" x="188" y="232">
<mx:columns>
<mx:advanceddatagridcolumn datafield="username"/>
<mx:advanceddatagridcolumn datafield="password"/>
</mx:columns>
</mx:printadvanceddatagrid>
import mx.printing.printadvanceddatagrid;
1.使用flexprintjob进行打印操作
1.如果没有分页和下拉框的时候
复制代码 代码如下:
public function doprint():void{
var printer:flexprintjob = new flexprintjob();
if(printer.start()){
printer.addobject(body);
printer.send();
}
}
这个方法即可 下面的可以使用,由于我使用的是flex3,flex3里面没有标签“printdatagrid”,只有“printadvanceddatagrid”。所以下面就使用(“printadvanceddatagrid”,“advanceddatagrid ”,“datagrid ”)这三种方式,切记上面的方式只适合于单个页面(数据较少)且没有下拉框
复制代码 代码如下:
<mx:printadvanceddatagrid id="body" x="188" y="232">
<mx:columns>
<mx:advanceddatagridcolumn datafield="username"/>
<mx:advanceddatagridcolumn datafield="password"/>
</mx:columns>
</mx:printadvanceddatagrid>
--------------------------------------------------------------------------------------
[/code]
<mx:advanceddatagrid id="body" x="188" y="232">
<mx:columns>
<mx:advanceddatagridcolumn datafield="username"/>
<mx:advanceddatagridcolumn datafield="password"/>
</mx:columns>
</mx:advanceddatagrid>
[/code]
-----------------------------------------------------------------------------------------
复制代码 代码如下:
<mx:datagrid id="body" x="188" y="232">
<mx:columns>
<mx:datagridcolumn datafield="username"/>
<mx:datagridcolumn datafield="password"/>
</mx:columns>
</mx:datagrid>
----------------------------------------------------------------------------------------------------------------------------------------------------------
如果要使用分页效果,则必须使用标签"printadvanceddatagrid"(flex3中的标签)才能够实现分页效果
复制代码 代码如下:
private function doprint():void{
var printjob:flexprintjob = new flexprintjob();
if(printjob.start()){
addchild(body);
//设置的打印视图属性
while(true){
printjob.addobject(body);
if(body.validnextpage){
body.nextpage();
}else{
break;
}
}
}
printjob.send();
}
这个方法,所对应的标签是:
复制代码 代码如下:
<mx:printadvanceddatagrid id="body" x="188" y="232">
<mx:columns>
<mx:advanceddatagridcolumn datafield="username"/>
<mx:advanceddatagridcolumn datafield="password"/>
</mx:columns>
</mx:printadvanceddatagrid>