在 Adobe Flex 中,要实现打印支持,通常需要使用 PrintDataGrid 或 PrintAdvancedDataGrid 这样的打印组件。以下是一个简单的示例,演示如何在 Flex 中支持打印功能:

1. 创建 Flex 项目: 创建一个 Flex 项目,例如使用 Adobe Flash Builder。

2. 添加 DataGrid 组件: 在 MXML 文件中添加一个 DataGrid 组件,用于显示需要打印的数据。
    <?xml version="1.0" encoding="utf-8"?>
    <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
                   xmlns:s="library://ns.adobe.com/flex/spark"
                   xmlns:mx="library://ns.adobe.com/flex/mx"
                   minWidth="955" minHeight="600">
        
        <fx:Declarations>
            <!-- Place non-visual elements (e.g., services, value objects) here -->
        </fx:Declarations>
        
        <fx:Script>
            <![CDATA[
                import mx.collections.ArrayCollection;

                [Bindable]
                private var dataProvider:ArrayCollection = new ArrayCollection([
                    { name: "John", age: 25, city: "New York" },
                    { name: "Alice", age: 30, city: "Los Angeles" },
                    { name: "Bob", age: 28, city: "Chicago" }
                ]);
            ]]>
        </fx:Script>
        
        <s:layout>
            <s:VerticalLayout />
        </s:layout>
        
        <mx:DataGrid id="myDataGrid" dataProvider="{dataProvider}" width="100%" height="100%">
            <mx:columns>
                <mx:DataGridColumn headerText="Name" dataField="name" />
                <mx:DataGridColumn headerText="Age" dataField="age" />
                <mx:DataGridColumn headerText="City" dataField="city" />
            </mx:columns>
        </mx:DataGrid>
    </s:Application>

3. 添加打印按钮: 添加一个按钮,用于触发打印操作。
    <s:Button label="Print" click="handlePrintButtonClick()" />

4. 编写打印代码: 在脚本部分编写打印的相关代码。
    <fx:Script>
        <![CDATA[
            import mx.printing.FlexPrintJob;
            import mx.printing.FlexPrintJobScaleType;

            private function handlePrintButtonClick():void {
                var printJob:FlexPrintJob = new FlexPrintJob();
                if (printJob.start()) {
                    // 设置打印缩放类型
                    printJob.scaleType = FlexPrintJobScaleType.MATCH_WIDTH;

                    // 添加要打印的内容
                    printJob.addObject(myDataGrid, FlexPrintJobScaleType.MATCH_WIDTH);

                    // 发起打印
                    printJob.send();
                }
            }
        ]]>
    </fx:Script>

在上述代码中,FlexPrintJob 类用于设置打印作业,start 方法启动打印对话框。然后,使用 addObject 方法添加要打印的组件(这里是 DataGrid),并通过 send 方法发起打印操作。

这只是一个简单的示例,你可以根据实际需求进一步调整和扩展打印功能。请注意,具体的 Flex 打印支持可能因版本和运行环境而有所不同。


转载请注明出处:http://www.zyzy.cn/article/detail/10789/Flex