2013-03-12 3 views
0

J'ai un problème avec l'exportation d'un graphique en format pdf. Regardez l'exemple ci-dessous:Exportation au format PDF avec l'image

http://jsfiddle.net/adrianCC/MLasL/28/

var chart = new Highcharts.Chart({ 
       chart: { 
        renderTo: 'container', 
        width: 600, 
        height: 90, 
        borderColor: '#000000', 
        borderWidth: 0, 
        type: 'line', 
        spacingLeft: 175 
       }, 
... 

Le tableau devrait exporter avec une image intégrée, mais l'image est exportée en pdf. J'utilise ASP.Quel est le problème?

Merci!

+0

ce langage côté serveur utilisez-vous? –

+0

J'utilise ASP. – user2143760

Répondre

0

Exportation d'un graphique d'utilisation d'outil sans contenu dynamique, comme l'utilisation de l'outil de rendu dans le rappel. Donc, vous devriez utiliser renderer dans l'événement load chart qui ajoute votre image lors de l'initialisation du graphique. (http://api.highcharts.com/highcharts#chart.events.load)

Prenez Regardez l'exemple: http://jsfiddle.net/MLasL/38/

events:{ 
        load:function(){ 
        this.renderer.image('http://87.106.176.87/Carel/Content/images/logo.jpg', 1, 1, 150, 50).add(); 

        } 
       } 
0

Voici comment je résous:

  • utilisation google canvg Il faut une URL dans un fichier SVG ou le texte d'un Fichier SVG, l'analyse en JavaScript et restitue le résultat sur un élément Canvas.

  • rendre votre diagramme svg sur la toile en utilisant

    canvg(document.getElementById('canvas'),getSVG()); 
    
  • convertir ce que vous avez dans la toile à l'image

    var canvas = document.getElementById("canvas") ; 
        var img = canvas.toDataURL("image/png"); //img is data:image/png;base64 
        img = img.replace('data:image/png;base64,', ''); 
    
  • rendre votre image à un champ caché

    $("hidden field").val(img) ; 
    
  • pour convertir cette chaîne en octet a rray faire

    Dim imageFile() As Byte = Convert.FromBase64String(YOUR HIDDEN FIELD .Value) 
    

MISE À JOUR

obtenir le Highcharts SVG

  • utiliser la méthode chart.getSVG()

Highcharts API

jsFiddle Example

  • ou utilisez simplement $(your svg).html()