我创建了一个跨越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>
答案 0 :(得分:0)
我猜您应该使用PrintJob.addPage()添加日期以打印作业。
答案 1 :(得分:0)
您必须自行分解/分页内容。您可以将每个这样的逻辑分解页面发送到PrintJob.appPage()API,使其成为打印纸。目前,正在发生的事情将是内容将被削减。