Domanda

Ho creato un'applicazione per stampare lo stato corrente del controllo che sto usando (in questo caso un ArcGIS Server mappa ), ma mi piacerebbe impostare una funzione di stampa che utilizza un proprio modello per la stampa invece di afferrare lo stato dell'applicazione.

Ho tentato di fare questo attraverso la creazione di un componente Flex che espone gli elementi che voglio stampare e istanziare quando io chiamo il FlexPrintJob. Purtroppo, semplicemente istanziare il risultato e ottenere un quadrato verde vuota.

Ci sono due domande principali su questo che mi piacerebbe mettere là fuori. In primo luogo, ciò che deve essere fatto per stampare un modello appena istanziato piuttosto che solo afferrare controlli già esistenti dallo schermo? In secondo luogo, per ulteriori controlli che hanno bisogno di caricare i dati complessi provenienti da più fonti, come una mappa ArcGIS, è possibile creare un'istanza di loro in quel tipo di ambiente, o c'è un modo per prendere un'immagine del controllo per l'applicazione e di stampa che ?

È stato utile?

Soluzione

Ho trovato che il modo migliore per farlo è stato quello di utilizzare il metodo ImageSnapshot.captureBitmapData () per ottenere un'immagine della mappa come dati bitmap, e poi, se necessario, della clip in un altro oggetto BitmapData utilizzando le copyPixels () metodo.

Una volta che avevo fatto che, l'aggiunta del modello per il processo di stampa era semplice:

Application.application.addChild(printTemplate);
printJob.addObject(printTemplate,FlexPrintJobScaleType.SHOW_ALL);
//printJob.printAsBitmap();
Application.application.removeChild(printTemplate);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top