Module for HighCharts to exports charts client-side.
Webpage for this project is here: http://a----.github.io/highcharts-export-clientside/
You may need to export a chart you made using HighCharts to an image or a PDF. It has an exporting module but it relies on an export server, which by default is http://export.highcharts.com/ and you also –unlucky you– have one or more of the following:
- your app doesn't have access to the intertubes;
- your chart contains sensitive data and you don't want an unsecure channel to carry it;
- sensitive data or not, you don't trust HighCharts with it;
- it's against your company policies;
- you don't want to set an export server up;
- you think it's 2015 and FFS, browsers should be able to do that.
Additionally, it provides a common interface between the official export module and export-csv
.
Dependencies are not shipped, so you'll have to do the following:
bower install
Boom, you're done. Check the example.html
file and mess with it.
Or just get highcharts-export-clientside.js
.
This module depends on:
- HighCharts obviously, remember guys, it isn't free for commercial usages;
- its exporting module, that is bundle with it;
- for rasterized images (PNG, JPEG), a module called
canvas-tools
with is based1 on canvg licenced under MIT Licence; - jsPDF (its GitHub page is overthere) for PDF support, licenced under MIT Licence;
- Pseudo-official export-csv module for CSV and XLS support, under MIT Licence.
The only dependencies you must use are HighCharts and HighCharts exporting module. If you want PNG/JPEG, add canvas-tools
. If you want PDF support, add both canvas-tools
and jsPDF
. If a dependency is missing for a file type, the option will not be available in the export menu.
1 There are issues with canvg, title/subtitle appearing twice, this kind of things which canvas-tools
fixes. So I'd suggest to go with this one.
Rasterized images have an aspect ratio issue. I probably made a boo-boo somewhere.That's fixed.- This probably won't work on Internet Explorer has it uses HTML5 download feature and opens a data-uri as a fallback.
But IE has limited data-uri support so who knows.Nope, but there are some shim/sham/polyfills so that's possible to do. - When exporting into PDF,
sourceWidth
andsourceHeight
are expressed in millimeters.
- handling of URL options in export-csv options (highcharts/export-csv#40)
## Credits
Written with the help of the following resources:
- that Stack Overflow Q/A and this snippet/project by @leighquince;
- this JSFiddle from the official HighCharts documentation