2013-04-18 6 views
5

Bir istemci projesi için yüksek çizelgeleri değerlendiriyorum ve phantomjs ile bir polar grafik oluşturmada bir sorunla karşılaştım. Grafikler çizgiler kalın gri bir blob olarak ortaya çıkıyor! Bunun animasyondan kaynaklandığını sanıyordum ama bu kapatıldı. Bir görüntüyü deneyip yayınlayacak, ancak başkalarının buna neden olabilecekleri konusunda herhangi bir fikri var mı? Önizleme kromdan baskı yaparsam, o da iyi görünüyor.highcharts kutup çizelgesini phantomjs ile PDF'ye dışa aktarma

İşte image.

Bu, phantomjs ile birlikte bulunan rasterize.js komut dosyasını kullanarak oluşturduğum bir raporun parçası olarak oluşturuldu. Diğer tüm grafikler iyi çalışıyor, kutup şeması çıkmayan tek şey. Eğer phantomjs ile highcharts export server betiğini kullanırsam iyi çalışır, fakat bu sadece 1 grafiğin PDF'ye aktarılmasına izin verir. Bazı grafikler dahil olmak üzere tüm web sayfasını bir PDF olarak vermem gerekiyor. projenin hata izleme başka çözüm var

+3

Bu çizelge için tooltip ('tooltip.enabled = false') ve fare takibini (' enabledMouseTracking = false') devre dışı bırakmayı deneyebilirsiniz. –

+0

bunu yaptı! Mükemmel çalışma, teşekkürler Pawel. –

cevap

6

:

yapmanız gereken tek şey dosya görüntülenmesinden önce düşük donukluk ile tüm sayfa öğelerini kaldırmaktır https://github.com/ariya/phantomjs/issues/10364#issuecomment-14992612

: Artık

diff --git a/examples/rasterize.js b/examples/rasterize.js 
index fcd74cd..dcc81d4 100644 
--- a/examples/rasterize.js 
+++ b/examples/rasterize.js 
@@ -19,6 +19,16 @@ if (phantom.args.length < 2 || phantom.args.length > 3) { 
      console.log('Unable to load the address!'); 
     } else { 
      window.setTimeout(function() { 
+    // Remove all low-opacity paths. see PhantomJS issue #364 
+    page.evaluate(function() { 
+     var paths = document.getElementsByTagName("path"); 
+     for (var i = paths.length - 1; i >= 0; i--) { 
+      var path = paths[i]; 
+      var strokeOpacity = path.getAttribute('stroke-opacity'); 
+      if (strokeOpacity != null && strokeOpacity < 0.2) 
+       path.parentNode.removeChild(path); 
+     } 
+    }); 
       page.render(output); 
       phantom.exit(); 
      }, 200); 

Grafiği içeren sayfanın kaynağına erişiminiz olmasa bile grafikleri almak için bunu kullanın.

İlgili konular