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

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

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

有帮助吗?

解决方案

我发现,最好的方式做到这一点是使用ImageSnapshot.captureBitmapData()方法来获得的地图作为位图数据的图像,然后,如果必要的话,它夹入使用copyPixels另一个BitmapData对象()方法

在我做的是,将模板打印作业很简单:

Application.application.addChild(printTemplate);
printJob.addObject(printTemplate,FlexPrintJobScaleType.SHOW_ALL);
//printJob.printAsBitmap();
Application.application.removeChild(printTemplate);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top