Apache flex 使用flex中的模板打印

Apache flex 使用flex中的模板打印,apache-flex,printing,esri,Apache Flex,Printing,Esri,我已经设置了一个应用程序来打印我正在使用的控件的当前状态(在本例中是一个),但是我想设置一个打印函数,它使用自己的模板来打印,而不是获取应用程序的状态 我试图通过设置一个flex组件来实现这一点,该组件列出了我想要打印的项目,并在调用FlexPrintJob时对其进行实例化。不幸的是,简单地实例化它会得到一个空白的绿色方块 关于这一点,我想提出两个主要问题。首先,打印新实例化的模板需要做些什么,而不仅仅是从屏幕上抓取已经存在的控件?其次,对于更多需要从多个源(如ArcGIS地图)加载复杂数据的控

我已经设置了一个应用程序来打印我正在使用的控件的当前状态(在本例中是一个),但是我想设置一个打印函数,它使用自己的模板来打印,而不是获取应用程序的状态

我试图通过设置一个flex组件来实现这一点,该组件列出了我想要打印的项目,并在调用FlexPrintJob时对其进行实例化。不幸的是,简单地实例化它会得到一个空白的绿色方块


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

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

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

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