Flex 3: запрос о печати - PullRequest
       12

Flex 3: запрос о печати

2 голосов
/ 05 октября 2011

Я создал приложение для планирования, которое охватывает более 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 голосов
/ 17 октября 2011

Вы должны разбить / разбить содержимое на части самостоятельно.Вы можете отправить каждую такую ​​логически разбитую страницу в API PrintJob.appPage (), чтобы она стала печатной бумагой.В настоящее время происходит то, что контент будет обрезан.

0 голосов
/ 14 октября 2011

Полагаю, вам следует использовать PrintJob.addPage () , чтобы добавить даты в задание на печать.

...