如何在FireFox3中打印Flex组件?

时间:2020-03-05 18:39:16  来源:igfitidea点击:

得益于FireFox对ActiveX组件的错误实施(在打印时确实应该对它们进行图像处理),Flex组件(在我们的情况下为图表)不能在FX中打印。

它们在IE7甚至IE6中都能正常打印。

我们需要打印这些图表,但它们也具有动态内容。当用户打印Flex组件时,我真的不想再次绘制它们作为图像。

我们发现了一种可能的解决方法,但不幸的是,它在FireFox3中不起作用(在FireFox2中,它可以工作,但还不够好)。

有人知道解决方法吗?

解决方案

回答

使用ACPrintManager,我可以使firefox 3完美打印!

我必须添加到示例中的一件事是检查stage是否为空,如果该stage为空,则调用callLater。

private function initPrint():void {
    //if we don't have a stage, wait until the next frame and try again
    if ( stage ==  null ) {
        callLater(initPrint);
        return;
    }

    PrintManager.init(stage);

    var data:BitmapData = new BitmapData(stage.stageWidth, stage.stageHeight);
    data.draw(myDataGrid);

    PrintManager.setPrintableContent(data);
}

回答

谢谢。添加到我们的自定义图表代码中的callLater-负载似乎已经完成了。