2011-10-05 47 views
2

我已經創建了一個跨度爲16周以上的調度應用程序。我希望能夠使用Flex打印日程安排。我創建了一個列出增量日期的測試應用程序。這些日期顯然比我的電腦寬度長。我希望我的打印功能能夠在幾頁中打印整個日期的寬度......目前,它僅打印出現在我的屏幕上的內容。有沒有辦法做到這一點?Flex 3:關於打印的查詢

下面是我創建的應用程序。還有用戶自定義函數調用一些,但他們絲毫沒有涉及到問題的另一方面:

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

你必須自己分解/分頁內容。您可以將每個這樣的邏輯分解頁面發送到PrintJob.appPage()API,以便它成爲打印的紙張。目前,發生的情況是內容會被截斷。