2017-04-05 3 views
0

Ich bin dran, html zu jpg mit Phantomjs zu rendern.Warum Phantom die Seite nicht korrekt darstellt?

Phantom rendert stackoverflow site perfekt, aber nicht meine eigene html Seite (die pieChart, generiert von js).

hier Phantom Skript:

var webPage = require('webpage'); 
var system = require('system'); 
var page = webPage.create(); 


page.viewportSize = { width: 1920, height: 1080 }; 
page.open(system.args[1], function start(status) { 
    page.render('index.jpeg', {format: 'jpeg', quality: '100'}); 
    phantom.exit(); 
}); 

Und hier ausgegeben img: enter image description here

Wie Rendering zu beheben?

+0

Fügen Sie 'page.onError' Callback hinzu, um nach Fehlern zu suchen. Versuchen Sie auch, page.render für eine Sekunde mit setTimeout zu verschieben, um js Zeit zu geben, seine Arbeit zu erledigen. – Vaviloff

+0

@Vaviloff du bist richtig! Timeout half! Machen Sie Ihren Kommentar als Antwort, um es als Lösung zu überprüfen – Mira

+0

Fertig, danke!) – Vaviloff

Antwort

1

Das Diagramm wird wahrscheinlich nicht im Bild angezeigt, da der Screenshot unmittelbar nach dem Öffnen der Seite erstellt wird. Versuchen Sie, das Erstellen eines Screenshots für eine Sekunde wie folgt zu verzögern:

page.open(system.args[1], function start(status) { 
    setTimeout(function(){ 
    page.render('index.jpeg', {format: 'jpeg', quality: '100'}); 
    phantom.exit(); 
    }, 1000); 
}); 
Verwandte Themen