Flex打印作业崩溃

Flex打印作业崩溃

问题描述:

我试图用flex printjob从datagrid打印数据。在网格中约有40条线路充满了数据。Flex打印作业崩溃

但是,当我尝试打印时,应用程序崩溃,但打印了一些页面。

这里是我的代码:

protected function openPrintDialogMonth():void { 
       doPrintingMonth(); 
     } 
     protected function doPrintingMonth():void { 
      var printjob2:FlexPrintJob; 
      var printTemplate:printTemplate = new printTemplate(); 
      var printDataGrid:PrintDataGrid; 


      printjob2 = new FlexPrintJob(); 
      if(printjob2.start()) 
      { 
       var currentYear:Date = new Date(); 

       var dataArray:Array = new Array(); 
       trace("Width/Height:", printjob2.pageWidth, "/", printjob2.pageHeight); 

       printDataGrid = new PrintDataGrid(); 
       printTemplate.width = 1368; 
       printTemplate.height = 800; 


       printTemplate.data = gridReport.dataProvider; 
       printTemplate.editData(); 

       printTemplate.year = String(currentYear.getFullYear()); 

       printTemplate.printDataGrid.columns = gridReport.columns; 
       printTemplate.printDataGrid.columnWidth = gridReport.columnWidth; 
       printTemplate.printDataGrid.visible = true; 
       printTemplate.printDataGrid.showHeaders = true; 
       printTemplate.printDataGrid.sizeToPage = true; 

       printTemplate.scaleX = 1.00; 

       printTemplate.validateNow(); 

       this.addElement(printTemplate); 



       if(!printTemplate.printDataGrid.validNextPage) 
       { 
        printjob2.addObject(printTemplate,FlexPrintJobScaleType.MATCH_WIDTH); 
        this.removeElement(printTemplate); 
       } 
       else 
       { 
        printjob2.addObject(printTemplate,FlexPrintJobScaleType.MATCH_WIDTH); 
        this.removeElement(printTemplate); 

        while(true) 
        { 
         printTemplate.printDataGrid.nextPage(); 
         printjob2.addObject(printTemplate,FlexPrintJobScaleType.MATCH_WIDTH); 

         if(!printTemplate.printDataGrid.validNextPage) 
          break; 
        } 
       } 

       printjob2.send(); 
      } 
     } 
+0

当应用程序“崩溃”发生任何错误时,您是否验证过您正在浏览器中使用Flash Player调试播放器。 – shaunhusain 2012-07-20 17:57:48

+0

我在Adobe空气中使用打印功能。如果打印文件更长,只会出现一些页面 – galileoGalilei 2012-07-21 15:03:28

今天有同样的问题在Flash中使用Adobe空气。在我的情况下,我必须在开始打印作业之前将displayobject添加到舞台上。将其添加到显示列表中会强制重新绘制printjob可能需要的重绘。