[英]Flex 4 Printing Error with dynamic components
我有一組動態添加到我的Flex 4階段的組件。
問題1:將這些對象添加到打印時如何處理這些對象。我無法動態生成對象並附加它們,因為打印管理器不會等待動態數據填充。
我目前使用以下代碼來動態尋址失敗的項目:
public function PrintDashPreview():void{
var ItemsDrawn:int = 0;
var printJob:FlexPrintJob = new FlexPrintJob();
if(printJob.start()){
for each (var item:Object in GetDashBoardPreviewItems.lastResult.DashboardItem)
{
ItemsDrawn ++
this.addElement(dashPreview["flexShape" + TheID]);
printJob.addObject(dashPreview["flexShape" + TheID]);
this.removeElement(dashPreview["flexShape" + TheID]);
}
printJob.send()
Alert.show('Sent: ' + ItemsDrawn + ' items to page for printing.','Print Progress Debug');
}
}
如何告訴flex抓取這些特定項目並將其添加到打印作業中。
問題2:
我如何告訴flex在每頁上將每個項目放在其他2個項目的下方。
請並感謝您提供的任何幫助。
問候克雷格·麥克
打印動態內容的方法通常如下:
(1)啟動printJob:
printJob = new FlexPrintJob();
printJob.printAsBitmap = false;
printJob.start();
(2)獲得打印頁面尺寸。 如果內容溢出,請使用它:
printerPageHeight = printJob.pageHeight;
printerPageWidth = printJob.pageWidth;
(3)創建所有動態對象,並等待相應的CREATION_COMPLETE事件:
var componentsToBeInitialized:Number = 0;
var pages:Array = [];
for each (var itemData:Object in dataProvider) {
var component:UIComponent = new PageComponent();
someContainerOnTheDisplayList.addChild(component);
component.data = itemData;
componentsToBeInitialized ++;
pages.push(component);
component.addEventListener(FlexEvent.CREATION_COMPLETE, handlePageCompletion);
}
(4)等待所有CREATION_COMPLETE事件:
function handlePageCompletion(e:Event):void {
componentsToBeInitialized --;
if (componentsToBeInitialized == 0)
printAllPages();
}
(5)打印頁面:
function printAllPages():void {
for each (var printPage:UIComponent in pages) {
printJob.addObject(printPage);
}
printJob.send();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.