`
yppsmile
  • 浏览: 6648 次
  • 性别: Icon_minigender_2
  • 来自: 南京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

flex 打印(1)

阅读更多
FlexPrintJob 实现--------------------------------------------不涉及分页还算可以



(一)MyPrintView.mxml------------------打印辅助文件

<?xml version="1.0" encoding="utf-8"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml"
    backgroundColor="#FFFFFF"
    height="250" width="450"
    paddingTop="50" paddingLeft="50" paddingRight="50">

    <!-- The controls to print, a PrintDataGrid control. -->
    <!--这个控件来打印,PrintDataGrid控制。-->
    <mx:PrintDataGrid id="myDataGrid" width="100%">
        <mx:columns>
            <mx:DataGridColumn dataField="Product"/>
            <mx:DataGridColumn dataField="Code"/>
        </mx:columns>
    </mx:PrintDataGrid>
</mx:VBox>



(二)PrintJobExample.mxml----------------------------------------打印实现主文件

<?xml version="1.0" encoding="utf-8"?>
<!-- printing\DGPrintCustomComp.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
    height="450"
    width="550">
    <mx:states>
        <mx:State name="printView">
            <mx:RemoveChild target="{myForm}"/>
            <mx:AddChild position="lastChild">
                <mx:Panel width="388" height="303" layout="absolute">
                    <mx:Image id="img" x="10" y="10"/>
                </mx:Panel>
            </mx:AddChild>
            <mx:AddChild position="lastChild">
                <mx:Button label="Back" click="currentState=&quot;&quot;"/>
            </mx:AddChild>
        </mx:State>
    </mx:states>

    <mx:Script>
        <![CDATA[
            import mx.printing.FlexPrintJob;
            import com.MyPrintView;
            import mx.graphics.ImageSnapshot;
            import mx.core.UIComponent;
            private function print(u:UIComponent):void{
             currentState="printView";
                var bmp:BitmapData = ImageSnapshot.captureBitmapData(u);
                var i:Bitmap = new Bitmap(bmp);               
                img.source = i;
                img.scaleContent = true;
            }
            //监听打印事件
            public function doPrint():void {
                // Create a FlexPrintJob instance.
                //创建一个FlexPrintJob实例。
                var printJob:FlexPrintJob = new FlexPrintJob();
   
                // Start the print job.
                if(printJob.start()) {
                    // Create a MyPrintView control as a child
                    //创建一个MyPrintView控制当作小孩看待当前视场。
                    // of the current view.
                    var formPrintView:MyPrintView = new MyPrintView();
                    addChild(formPrintView);  
                    // Set the print control's data grid data provider to be
                    //设定打印控制的数据网格数据提供者
                    // the displayed data grid's data provider.
                    //显示的数据网格的数据提供者。
                    formPrintView.myDataGrid.dataProvider =
                        myDataGrid.dataProvider;  
                    // Add the SimplePrintview control to the print job.
                    // 增加SimplePrintview控制到印刷工作。
                    // For comparison, try setting the
                    // 为比较的尝试设置 
                    // second parameter to "none".
                    // 对“无的”第二个参量。 
                    printJob.addObject(formPrintView);
   
                    // Send the job to the printer.
                    // 寄发工作到打印机。 
                    printJob.send();
   
                    // Remove the print-specific control to free memory.
                    // 取消打印具体控制释放记忆。 
                    removeChild(formPrintView);
                }
            }
        ]]>
    </mx:Script>

    <!-- The form to display-->
    <mx:Form id="myForm">
        <mx:FormHeading label="Contact Information"/>
        <mx:FormItem label="Name: ">
            <mx:TextInput id="custName"
                width="200"
                text="Samuel Smith"
                fontWeight="bold"/>
        </mx:FormItem>
        <mx:FormItem label="Phone: ">
            <mx:TextInput id="custPhone"
                width="200"
                text="617-555-1212"
                fontWeight="bold"/>
        </mx:FormItem>
        <mx:FormItem label="Email: ">
            <mx:TextInput id="custEmail"
                width="200"
                text="sam@sam.com"
                fontWeight="bold"/>
        </mx:FormItem>

        <mx:FormHeading label="Product Information"/>
        <mx:DataGrid id="myDataGrid" width="300">
            <mx:dataProvider>
                <mx:Object Product="Flash" Code="1000"/>
                <mx:Object Product="Flex" Code="2000"/>
                <mx:Object Product="ColdFusion" Code="3000"/>
                <mx:Object Product="JRun" Code="4000"/>
            </mx:dataProvider>
        </mx:DataGrid>
        <mx:Button label="PrintView" click="print(myDataGrid)"/>
        <mx:FormItem label="Label">
        </mx:FormItem>
        <mx:Button id="myButton"
            label="打印"
            click="doPrint();"/>
    </mx:Form>
</mx:Application>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics