Flex 3:关于打印的询问

时间:2011-10-05 17:42:57

标签: actionscript-3 flex printing flex3

我创建了一个跨越16周的调度应用程序。我希望能够使用Flex打印计划。我已经创建了一个列出递增日期的测试应用程序。这些日期显然比我的电脑宽度延长。我希望我的打印功能可以在几个页面上打印整个日期宽度...目前,它只打印出我屏幕上显示的内容。有没有办法实现这个目标?

以下是我创建的应用。有一些调用自定义函数,但它们与手头的问题无关:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init();">
<mx:Script source="functions/dateFunctions.as" />
<mx:Script>
    <![CDATA[
        import mx.controls.Alert;
        import mx.collections.ArrayCollection;
        [Bindable] public var date:Date = new Date;
        public var numDays:Number = 50;
        [Bindable] public var datesAC:ArrayCollection = new ArrayCollection;
        public function init():void
        {
            var tempDate:String = new String;
            for (var i:int = 0; i < numDays; i++)
            {
                tempDate = dateToNumText(rightDate(date.getMonth(), date.getDate() + i, date.getFullYear()));
                datesAC.addItem(tempDate);
            }
        }

        private function printMe() :void 
        {
            var pj:PrintJob = new PrintJob();
            pj.start();

            // setTimeout(function() :void { finishPrinting(pj);}, 1);

            finishPrinting(pj);
        }

        private function finishPrinting(pj:PrintJob): void {
            pj.addPage(this);
            pj.send();
        }
    ]]>
</mx:Script>
<mx:VBox width="100%" height="100%">
    <mx:Button id="print" label="Start Print" click="printMe()" />
    <mx:HorizontalList id="dateList" dataProvider="{datesAC}" width="100%" height="100%" useRollOver="false">
        <mx:itemRenderer>
            <mx:Component>
                <mx:Canvas borderColor="#000000" borderSides="right" borderStyle="solid">
                    <mx:Text text="{data}" textAlign="center" color="#000000" width="100" />
                </mx:Canvas>
            </mx:Component>
        </mx:itemRenderer>
    </mx:HorizontalList>
</mx:VBox>
</mx:Application>

2 个答案:

答案 0 :(得分:0)

我猜您应该使用PrintJob.addPage()添加日期以打印作业。

答案 1 :(得分:0)

您必须自行分解/分页内容。您可以将每个这样的逻辑分解页面发送到PrintJob.appPage()API,使其成为打印纸。目前,正在发生的事情将是内容将被削减。