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();
}
}
答
今天有同样的问题在Flash中使用Adobe空气。在我的情况下,我必须在开始打印作业之前将displayobject添加到舞台上。将其添加到显示列表中会强制重新绘制printjob可能需要的重绘。
当应用程序“崩溃”发生任何错误时,您是否验证过您正在浏览器中使用Flash Player调试播放器。 – shaunhusain 2012-07-20 17:57:48
我在Adobe空气中使用打印功能。如果打印文件更长,只会出现一些页面 – galileoGalilei 2012-07-21 15:03:28