在flex中使用模板进行打印

时间:2009-09-21 14:42:50

标签: flex printing esri

我已经设置了一个应用程序来打印我正在使用的控件的当前状态(在本例中为ArcGIS server map),但是我想设置一个使用它自己的模板的打印功能打印而不是抓住应用程序的状态。

我试图通过设置一个flex组件来设置我想要打印的项目并在我调用FlexPrintJob时实例化它。不幸的是,简单地实例化它会导致获得一个空白的绿色方块。

有两个主要问题,我想把它放在那里。首先,需要做些什么才能打印新实例化的模板,而不是仅仅从屏幕抓取现有的控件?其次,对于需要从多个源(如ArcGIS地图)加载复杂数据的更多控件,是否可以在这种环境中实例化它们,或者是否有办法在应用程序中获取控件的图像并打印?

1 个答案:

答案 0 :(得分:1)

我发现最好的方法是使用ImageSnapshot.captureBitmapData()方法将地图图像作为位图数据,然后,如有必要,使用copyPixels()将其剪辑到另一个BitMapData对象中方法

完成后,将模板添加到打印作业很简单:

Application.application.addChild(printTemplate);
printJob.addObject(printTemplate,FlexPrintJobScaleType.SHOW_ALL);
//printJob.printAsBitmap();
Application.application.removeChild(printTemplate);