簡體   English   中英

動態組件出現Flex 4打印錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM