3

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

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

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

4

1 回答 1

1

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

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

Application.application.addChild(printTemplate);
printJob.addObject(printTemplate,FlexPrintJobScaleType.SHOW_ALL);
//printJob.printAsBitmap();
Application.application.removeChild(printTemplate);
于 2009-10-05T18:01:21.913 回答