Client side export

The offline-exporting module allows for image export of charts without sending data to an external server. This is the solution if you:

  • Want to avoid having users send your chart configs to Highsoft's servers
  • Want to save the cost of setting up your own server
  • Don't require the export to work with old browsers

View it live on jsFiddle.

The module makes use of modern browser technology to accomplish this, and therefore does not work flawlessly with older browsers. For a detailed table of supported browsers, see below. In the case of an unsupported browser, the module will by default fall back to the export server, but this can be disabled with the exporting.fallbackToExportServer option.

Internet Explorer requires the canvg library in order to export to PNG and to export charts with embedded images. PDF export also requires the jsPDF and svg2pdf for all browsers. By default, the module will load these file from our server on demand, but the URL can be changed using the exporting.libURL option. If the scripts have already been loaded by the page, Highcharts will not load them again. Note that even when loading these files, no chart data is sent to our server.

PDF does not support exporting with images and will fall back to the export server.

To use the module, simply include it after the exporting module. The exporting module is a required dependency even if fallback is disabled.

<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/modules/exporting.js"></script>
<script src="https://code.highcharts.com/modules/offline-exporting.js"></script>

Browser support table

Chrome (latest)Firefox (latest)Edge (latest)Safari (latest)Safari 5.1IE 10-11Android (latest)Android (4.0)Chrome for AndroidSafari for iOSChrome for iOS
SVGOKOKOKOKOpens data URIOKOKOpens data URIOKOKOK
PNG/JPEGOKOKOKOKOpens data URIOKOKOpens data URIOKOKOK
PDFOKOKOKOKFallback to export serverFallback to export serverOKFallback to export serverOKOKOK
SVG w/images (same server)OKOKOKOKOpens data URIOKOKOpens data URIOKOKOK
PNG/JPEG w/images (same server)OKOKOKOKSuboptimal imageFallback to export serverOKOpens data URIOKOKOK
SVG w/images (CORS enabled server)OKOKOKOKFallback to export serverFallback to export serverOKFallback to export serverOKOKOK
PNG/JPEG w/images (CORS enabled server)OKOKOKOKFallback to export serverFallback to export serverOKFallback to export serverOKOKOK

Internet Explorer 9 and older will attempt to fall back to export server in all cases.

Decision flowchart of the module (click for large version):

Offline export decision flowchart

Export local PDF in a language containing non-Latin characters or Unicode Characters/UTF-8

As described in the jsPDF docs, the 14 standard fonts in PDF are limited to the ASCII-codepage. Therefore, in order to support for example Chinese text in the exported PDF, one or more TTF font files have to be passed on to the exporting module.

TTF font files are available from several resources online. A good resource is Google Fonts, and the Noto set of fonts that support a variety of different languages. Given the volume of languages and glyphs, there is no single font files that covers all languages.

For the sake of our feature demo, we are loading font files from our own website:

exporting: {
pdfFont: {
normal: 'https://www.highcharts.com/samples/data/fonts/NotoSans-Regular.ttf',
bold: 'https://www.highcharts.com/samples/data/fonts/NotoSans-Bold.ttf',
bolditalic: 'https://www.highcharts.com/samples/data/fonts/NotoSans-BoldItalic.ttf',
italic: 'https://www.highcharts.com/samples/data/fonts/NotoSans-Italic.ttf'
}
}

View it live on jsFiddle