2012-06-20 2 views

답변

6

다음은 직접 인쇄를 수행하는 대체 솔루션입니다. chart.print() 함수를 기반으로하지만 여러 차트에서 작동합니다. 답에 대한 http://jsfiddle.net/jim31415/q5Rzu/150/

 //-------------------------------------------------------------------- 
     $("#print").click(function() { 
      printCharts([chart1, chart2, chart3]); 
     }); 


     //-------------------------------------------------------------------- 
     function printCharts(charts) { 

      var origDisplay = [], 
       origParent = [], 
       body = document.body, 
       childNodes = body.childNodes; 

      // hide all body content 
      Highcharts.each(childNodes, function (node, i) { 
       if (node.nodeType === 1) { 
        origDisplay[i] = node.style.display; 
        node.style.display = "none"; 
       } 
      }); 

      // put the charts back in 
      $.each(charts, function (i, chart) { 
       origParent[i] = chart.container.parentNode; 
       body.appendChild(chart.container); 
      }); 

      // print 
      window.print(); 

      // allow the browser to prepare before reverting 
      setTimeout(function() { 
       // put the charts back in 
       $.each(charts, function (i, chart) { 
        origParent[i].appendChild(chart.container); 
       }); 

       // restore all body content 
       Highcharts.each(childNodes, function (node, i) { 
        if (node.nodeType === 1) { 
         node.style.display = origDisplay[i]; 
        } 
       }); 
      }, 500); 
     } 
    }); 
+0

나는 그것을 들여다 볼 것이지만 jsFiddle에서 보았던 것에서 좋아 보인다. –

+0

Highcharts가 파일을 삭제했습니다.이 링크를 첫 번째 링크 대신 사용할 수 있습니다. http://jsfiddle.net/q5Rzu/147/ – fcortes

+0

도와 주시겠습니까? 한 번에 5 개의 차트를 인쇄하고 싶습니다. 하지만 첫 페이지 상단에 작은 글씨를 쓰고 싶습니다. 그렇게하는 방법 ? –

8

exportChart 메서드는 둘 이상의 차트를 보낼 수 있도록 매개 변수를 허용합니다. 그러나 print 메소드는 매개 변수를 허용하지 않습니다. 따라서 인쇄하려면 chart1.print()와 같이 각 차트를 별도로 지정해야합니다. 및 chart2.print(); 각각 별도로 인쇄합니다. Highcharts 인쇄를 사용하지 않고 전체 페이지를 인쇄

  1. :

    은 두 가지 해결 방법이 있습니다. 다음은 example입니다.

  2. 두 차트를 모두 pdf 파일로 내보내고 거기에 양식을 인쇄 할 수 있습니다. 다음은 export multiple charts to one pdf의 예입니다.

+0

감사 :

여기 데모를 참조하십시오. 이것은 jFiddle에서 작동하지만, 내 페이지에서는 차트뿐만 아니라 페이지의 다른 모든 내용도 인쇄합니다. 나는 인쇄 CSS를 사용하여 뭔가를 할 수 있다고 생각하지만 차트 만 인쇄하는 방법이 있습니까? –

+0

답변을 업데이트했습니다. 어쩌면 그것은 당신을 위해 작동 할 것입니다. – Linger

+0

클라이언트 측에서 여러 차트를 인쇄 할 수 없다면 그게 제가 의도 한 것입니다. 다른 해결책이있는 경우를 대비하여 지금 당장 질문을 공개하겠습니다. –