Flex 3:打印查询

发布于 2024-12-08 12:03:59 字数 2105 浏览 0 评论 0原文

我创建了一个跨度长达 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>

I have created a scheduling application that spans upwards of 16 weeks. I would like to be able to print the schedule using Flex. I've created a test application that lists incrementing dates. These dates obviously stretch longer than the width of my computer. I would like for my print function to print the entire width of dates across several pages... currently, it prints just what appears on my screen. Is there a way to accomplish this?

Below is the app i've created. There are some calls to custom functions, but they in no way relate to the issue at hand:

<?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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

跨年 2024-12-15 12:03:59

您必须自己对内容进行分解/分页。您可以将每个此类逻辑上分解的页面发送到 PrintJob.appPage() API,以便它成为打印的纸张。目前,正在发生的情况是内容会被剪辑。

You would have to break up/paginate content on your own. You can send each such logically broken up page to PrintJob.appPage() API so it becomes a printed paper. At present, what is happening would be that content would be getting clipped.

旧情勿念 2024-12-15 12:03:59

我想你应该使用 PrintJob.addPage() 将您的日期添加到打印作业。

I guess you should use PrintJob.addPage() to add your dates to print job.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文