2012-06-20 17 views
8

क्या हाइचार्ट्स के लिए "सभी प्रिंट करें" बटन बनाना संभव है, जहां एक चार्ट मुद्रित किया गया है?हाइचार्ट्स: "सभी प्रिंट करें" बटन

मुझे पता है कि एकाधिक चार्ट निर्यात करना संभव है, जैसा कि जेएफआईडी: http://jsfiddle.net/highcharts/gd7bB/1/ में दिखाया गया है लेकिन मुझे यकीन नहीं है कि हाईचरेट प्रिंटिंग के साथ एक समान विधि की अनुमति देता है।

उत्तर

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

मैं इसे देख लूंगा, लेकिन जेएसफ़िल्ड में जो कुछ मैं देखता हूं उससे अच्छा लगता है! –

+0

हाइचार्ट्स ने फ़ाइलों को हटा दिया, आप इसे पहले लिंक के बजाय बेहतर इस्तेमाल कर सकते हैं http://jsfiddle.net/q5Rzu/147/ – fcortes

+0

क्या आप मेरी मदद कर सकते हैं? मैं एक समय में 5 चार्ट प्रिंट करना चाहता हूं। लेकिन मैं पहले पृष्ठ के शीर्ष पर एक टिटल देना चाहता हूं। उसको कैसे करे ? –

8

निर्यात चार्ट विधि पैरामीटर स्वीकार करती है ताकि आप इसे एक से अधिक चार्ट भेज सकें। हालांकि, प्रिंट विधि किसी भी पैरामीटर को स्वीकार नहीं करता है। इसलिए, प्रिंट करने के लिए आपको प्रत्येक चार्ट को चार्ट 1.print() की तरह अलग से निर्दिष्ट करना होगा; और chart2.print(); जो उन्हें अलग से प्रिंट करता है।

  1. Highcharts मुद्रण का उपयोग किए बिना पूरे पेज को प्रिंट करना:

    दो तरीके दिए हैं। यहां एक example है।

  2. आप दोनों चार्टों को पीडीएफ फ़ाइल में निर्यात कर सकते हैं और फिर वहां फॉर्म प्रिंट कर सकते हैं। यहां export multiple charts to one pdf पर एक उदाहरण दिया गया है।

+0

जवाब के लिए धन्यवाद:

डेमो यहाँ देखें। यह jFiddle में काम करता है, लेकिन मेरे पृष्ठ पर, यह न केवल चार्ट बल्कि पृष्ठ पर बाकी सब कुछ प्रिंट करता है। मुझे लगता है कि मैं प्रिंट सीएसएस का उपयोग करके कुछ काम कर सकता हूं, लेकिन क्या चार्ट केवल प्रिंट करने का कोई तरीका है? –

+0

मैंने अपना जवाब अपडेट कर दिया है। शायद यह आपके लिए काम करेगा। – Linger

+0

यही वह है जिसका उपयोग मैं करना चाहता था यदि क्लाइंट पक्ष से कई चार्ट प्रिंट करना संभव नहीं है। यदि किसी के पास कोई अलग समाधान है, तो मैं अब प्रश्न खोलूंगा। –

संबंधित मुद्दे