2011-07-18 49 views
0

我正在爲我正在開發的AIR應用程序構建非常基本的報表編寫器。我正在使用Flash PrintJob類輸出我的報告的內容(其中的頁面作爲Canvas對象存儲在ViewStack對象中)。問題是,只有在報表預覽屏幕中看到的內容纔會打印出來。有沒有辦法可以打印Canvas對象包含的內容而不僅僅是可見的內容?Flash Printing僅打印畫布上可見的內容

非常感謝您的幫助。

這裏是我使用的代碼片段:

 protected function doPrintReport(event:Event):void 
     { 
      var pj:PrintJob = new PrintJob(); 
      var pjo:PrintJobOptions = new PrintJobOptions(); 

      CursorManager.setBusyCursor(); 

      if(pj.start() == true) { 

       if(vsOutput.orientation == "landscape") { 
        pj.orientation = PrintJobOrientation.LANDSCAPE; 
            } 
       else { 
        pj.orientation = PrintJobOrientation.PORTRAIT; 
       } 
       for(var i:int = 0; i < vsOutput.length; i++) { 
        var pc:Canvas = new Canvas(); 
        pc = vsOutput.getChildAt(i) as Canvas; 
        pj.addPage(pc, null, pjo); 
       } 
      } 
      else { 
       CursorManager.removeBusyCursor(); 
       MsgBox.error("Failed to initiate printing", "Printing Error"); 
       return; 
      } 

      try{ 
       pj.send(); 
      } 
      catch(e:Error) 
      { 
       CursorManager.removeBusyCursor(); 
       MsgBox.error(e.toString(), "Printing Error"); 
       return; 
      } 

      CursorManager.removeBusyCursor(); 
      MsgBox.info("Print request sent successfully", "Print Request"); 
     } 

回答

1

你需要的所有畫布對象添加到PrintJob的。使用addObject

這將是很高興看到你的代碼,如果它不工作

+0

感謝,只有用於Flash PrintJob類的addPage方法,將FlexPrintJob似乎並沒有給我的靈活性我需要。我已經添加了用於打印輸出的方法...再次感謝您的關注。 –