代码之家  ›  专栏  ›  技术社区  ›  Keith

如何在FireFox3中打印flex组件?

  •  5
  • Keith  · 技术社区  · 17 年前

    由于火狐对ActiveX组件的错误实现(它在打印时真的应该拍下它们的图像),flex组件(在我们的示例图表中)不在fx中打印。

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

    我们需要打印这些图表,但它们也有动态内容。我真的不想在用户打印时再把它们画成图像-flex组件应该这样做。

    我们找到了一个 potential workaround 但不幸的是,它在FireFox3中不起作用(在FireFox2中,它有点起作用,但还不够好)。

    有人知道解决方法吗?

    2 回复  |  直到 10 年前
        1
  •  3
  •   Matt MacLean    17 年前

    使用acprintmanager,我可以让火狐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);
    }
    
        2
  •  0
  •   Keith    17 年前

    谢谢。负载 callLater -添加到我们的自定义图表代码中的。