Domanda

Qualcuno sa di un modo per creare automaticamente un grafico SVG, ed esportare una versione un'immagine JPEG o PNG del grafico Highacarts allo stesso tempo (preferibilmente su $(document).ready)?

voglio visualizzare la versione SVG di schermo e mettere il PNG o JPEG in un DIV nascosta per la stampa.

Grazie in anticipo.

È stato utile?

Soluzione

La mia soluzione crea automaticamente un'immagine equivalente del SVG di ogni grafico nella mia pagina / dashboard (nel suo stato di partenza), senza la necessità di un utente di esportare singolarmente. In questo modo tutti i Highcharts grafici e tabelle su una pagina per stampare correttamente, senza l'intervento dell'utente necessario.

La ragione per cui le pagine con Highcharts grafici non vengono stampati correttamente perché i grafici sono realizzati con SVG e le versioni attuali dei browser più comuni non supportano la stampa in formato SVG (scritto gennaio 2012). La mia soluzione sarà quindi irrilevante quando lo fanno.

La mia soluzione aggira questa limitazione corrente del browser:

In primo luogo, ho modificato il file exporting.js Highcharts al fine di attivare automaticamente la routine che di solito è attivato quando l'utente sceglie manualmente per esportare un'immagine.

In seguito, è importante notare che quando un utente sceglie manualmente per esportare un'immagine la loro richiesta viene inviata come una richiesta di intestazione della pagina complessiva.

Pertanto, il mio emendamento alla funzione di esportazione non pubblica direttamente i dati Highcharts, ma primi post del SVG e altri dati necessari che Highcharts ha la necessità di DIV nella mia pagina / dashboard.

Ogni DIV che riceve la richiesta include un file php cui routine di json_encodes i dati POST che riceve dalla routine di esportazione e poi POSTI fuori ad Highcharts server di esportazione come la propria intestazione.

Quindi, perché il POST viene attivato da quella DIV, il risultato viene inviato di nuovo direttamente a quella DIV, come un colpo di testa dello script PHP in quel DIV.

Una volta che è stato inviato di nuovo a quel DIV ho salvato l'immagine, ha fatto la stampa DIV solo tramite CSS e l'unico output HTML di quella DIV è stato il tag img con il percorso del file immagine.

Ho attivato l'tutti i div per essere popolato con le loro immagini utilizzando $(document).ready.

Una nota a chiunque altro cercando di questo è che la configurazione del mio dev e server di vivere diverso, nel senso che ho dovuto stripslashes il JSON su uno di essi prima di inviarlo al Highcharts.

I seguenti messaggi indicheranno chiunque altro cercando di fare questo nella giusta direzione.

immagine Diagramma di risparmio di Google in un file con PHP

annuncio a un DIV:

forma Share JQuery e Popola DIV - rotto in IE

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top