2013-04-18 2 views
5

클라이언트 프로젝트에 대한 highcharts를 평가 중이며 phantomjs가있는 극좌표를 렌더링하는 데 문제가 있습니다. 차트 라인은 두꺼운 회색 얼룩으로 나옵니다! 나는 이것이 애니메이션 때문이라고 생각했지만 그게 꺼져 버렸어. 시도하고 이미지를 게시하지만 아무도이 원인이 될 수있는 어떤 생각을 가지고 있습니까? 크롬에서 미리보기를 인쇄해도 괜찮아 보입니다.highcharts polar chart를 phantomjs로 PDF로 내보내기

여기는 image입니다.

이 파일은 phantomjs에 포함 된 rasterize.js 스크립트를 사용하여 작성한 보고서의 일부로 만들어졌습니다. 다른 모든 차트는 정상적으로 작동하며 폴라 차트 만 나오지 않습니다. phantomjs로 highcharts 내보내기 서버 스크립트를 사용하면 제대로 작동하지만 PDF로 내보낼 수있는 차트는 하나뿐입니다. 일부 차트를 포함하여 전체 웹 페이지를 PDF로 내보낼 필요가 있습니다. 프로젝트의 버그 추적에 대한 또 다른 대안은있다

+3

해당 차트에 대한 툴팁 ('tooltip.enabled = false') 및 마우스 추적 ('enabledMouseTracking = false')을 비활성화 할 수 있습니다. –

+0

그랬어! 훌륭한 작품, 고마워요 Pawel. –

답변

6

:

당신이해야 할 모든 파일을 렌더링하기 전에 낮은 불투명도를 가진 모든 페이지 요소를 제거하는 것입니다 https://github.com/ariya/phantomjs/issues/10364#issuecomment-14992612

: 당신이 할 수있는

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); 

을 그래프가 포함 된 페이지의 소스에 대한 액세스 권한이없는 경우에도 그래프를 그릴 수 있습니다.