I followed the advice at http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7c80.html to print "using a print-specific output format" in Flex 4.5, however this causes the data to disappear from my chart! Try the code below - is this a bug or is there a simple solution? One interesting side-effect is that after you print and the data disappears from your chart, you can still hover over the empty chart and get the dataTips pop up! :-)
John <?xml version="1.0" encoding="utf-8"?> <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" width="800" height="600"> <fx:Script> <![CDATA[ import mx.charts.LineChart; import mx.printing.FlexPrintJob; import mx.collections.ArrayCollection; [Bindable] public var expensesAC:ArrayCollection = new ArrayCollection( [ { Month: "Jan", Profit: 2000, Expenses: 1500, Amount: 450 }, { Month: "Feb", Profit: 1000, Expenses: 200, Amount: 600 }, { Month: "Mar", Profit: 1500, Expenses: 500, Amount: 300 }, { Month: "Apr", Profit: 1800, Expenses: 1200, Amount: 900 }, { Month: "May", Profit: 2400, Expenses: 575, Amount: 500 } ]); protected function button1_clickHandler(event:MouseEvent):void { var printJob:FlexPrintJob = new FlexPrintJob(); if (printJob.start()) { var lc:LineChart = new LineChart(); lc.height = mlc.height; lc.width = mlc.width; lc.dataProvider = mlc.dataProvider; lc.series = mlc.series; lc.seriesFilters = mlc.seriesFilters; lc.horizontalAxis = mlc.horizontalAxis; lc.verticalAxis = mlc.verticalAxis; addElement(lc); printJob.addObject(lc); printJob.send(); removeElement(lc); } } ]]> </fx:Script> <s:HGroup> <mx:LineChart id="mlc" dataProvider="{expensesAC}" showDataTips="true"> <mx:horizontalAxis> <mx:CategoryAxis categoryField="Month"/> </mx:horizontalAxis> <mx:series> <mx:LineSeries yField="Profit" form="curve" displayName="Profit"/> <mx:LineSeries yField="Expenses" form="curve" displayName="Expenses"/> <mx:LineSeries yField="Amount" form="curve" displayName="Amount"/> </mx:series> </mx:LineChart> <s:Button label="print" click="button1_clickHandler(event)"/> </s:HGroup> </s:WindowedApplication>