由于 FireFox 对 ActiveX 组件的错误实现(它确实应该在打印时拍摄它们的图像),Flex 组件(在我们的案例图表中)无法在 FX 中打印。

它们在 IE7 甚至 IE6 中打印得很好。

我们需要打印这些图表,但它们也有动态内容。我真的不想在用户打印时再次将它们绘制为图像 - Flex 组件应该这样做。

我们找到了一个 潜在的解决方法, ,但不幸的是它在 FireFox3 中不起作用(在 FireFox2 中它可以工作,但不够好)。

有人知道解决方法吗?

有帮助吗?

解决方案

使用 ACPrintManager 我能够让 firefox 3 完美打印!

我必须添加到示例中的一件事是检查 stage 是否为 null,以及 callLater 如果 stage 为 null。

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-s 添加到我们的自定义图表代码中似乎已经完成了。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top