Рецепт печати динамического содержимого обычно выглядит следующим образом:
(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();
}