Short answer: use Highcharts’ exporting module for a chart-only PDF. For browser-side generation, load offline-exporting.js plus the PDF libraries Highcharts requires; otherwise use Highcharts’ public export service or a self-hosted Node/Puppeteer server. html2canvas is a separate DOM renderer, not the documented Highcharts PDF engine. Its documentation covers modern browsers such as Firefox, but does not list Internet Explorer, so do not treat an html2canvas recipe as an IE-compatible solution without testing the exact browser and content.
Choose the export path before writing code
Your decision depends on the Highcharts version, the IE version, whether the PDF may leave the browser, and whether you need only the chart or a larger page region.
| Path | Best for | What to verify |
|---|---|---|
| Client-side Highcharts export | Chart-only PDF with processing in the browser | offline-exporting.js, svg2pdf.js, jspdf.js, browser support and PDF features |
| Highcharts export service | Fast implementation when sending generated SVG to a public service is acceptable | Network access, data sensitivity and fallback behavior |
| Self-hosted export server | Controlled server-side rendering or unsupported client features | Node.js, Puppeteer operations, security and maintenance |
| html2canvas | A visual capture of surrounding DOM content, not specifically Highcharts PDF conversion | Supported browser, CSS, fonts, images, same-origin policy and iframe restrictions |
Highcharts’ export-module overview documents PDF, PNG, JPG, SVG and printing. It says client-side exporting became the default in version 12.3. That does not make every export feature available in every legacy browser. Highcharts’ system requirements list Internet Explorer 9+ and Firefox 2.0+, but those are library compatibility statements, not a complete export-feature matrix. From Highcharts 11 onward, legacy browsers should load scripts from the es5 directory.
Client-side PDF export with Highcharts
1. Confirm versions and load the appropriate builds
Identify the exact Highcharts release and IE version in your support requirements. For Highcharts 11+, use the legacy ES5 distribution where required. Do not assume a current module build will execute in an old IE document.
Free tools Windows power users keep installed
One-click scans. No signup required.
#1 Best Overall
- Engineered for convenience – This new Brother Monochrome Laser Printer is conveniently equipped with a flatbed scan glass for quick copying and scanning. Mobile Device Compatibility AirPrint, Google Cloud Print 2.0, Brother iPrint and Scan, Mopria, Cortado Workplace
- Optimized for efficiency – Engineered with new features, the HL L2395DW laser printer (replacement for the HLL2380DW) and has been optimized for efficiency, allowing you to print up to 36 pages per minute(1)
- Faster, high quality prints: This monochrome laser printer is built with a 250 sheet paper capacity that helps improve efficiency due to less time spent refilling trays. It also handles both letter and legal sized paper. Power Source AC 120V 50/60Hz.Machine Noise (Ready/Printing): 30dB / 50dB
- Cloud based print & scan – Print from and scan to popular Cloud services directly from the 2.7" color touchscreen, including Dropbox, Google Drive, Evernote, OneNote, and more(4)
- Wireless printing & exceptional support – This printer’s simple to connect wireless technology allows you to submit print jobs from your laptop, smartphone, desktop, and tablets(2). The "Touch to connect" printing with NFC delivers added convenience(3).
Load Highcharts, the exporting module and offline exporting. PDF generation also needs svg2pdf.js and jspdf.js. Highcharts lists these as third-party optional dependencies and notes that you are responsible for their security, licensing and warranty review. See Highcharts optional dependencies for loading and configuration details.
2. Create the chart and export button
<div id="chart"></div>
<button id="pdf" type="button">Download PDF</button>
<script src="/highcharts/highcharts.js"></script>
<script src="/highcharts/modules/exporting.js"></script>
<script src="/highcharts/modules/offline-exporting.js"></script>
<!-- Load compatible svg2pdf.js and jsPDF builds before exporting -->
<script>
Highcharts.chart('chart', {
title: { text: 'Revenue by quarter' },
xAxis: { categories: ['Q1', 'Q2', 'Q3', 'Q4'] },
series: [{ name: 'Revenue', data: [12, 18, 15, 23] }],
exporting: {
enabled: true,
fallbackToExportServer: true
}
});
document.getElementById('pdf').onclick = function () {
var chart = Highcharts.charts[0];
chart.exportChart({ type: 'application/pdf' });
};
</script>
With local dependencies available, Highcharts can generate the PDF in the browser. If local conversion cannot run, fallbackToExportServer permits a server fallback. The API documentation describes this option and warns that, since Highcharts 13, PDF client-side dependencies are not auto-loaded unless exporting.libURL is configured or the scripts are already present. Check the API entry for your deployed version: Highcharts exporting API.
3. Force a specific export configuration
You can pass temporary chart options to exportChart, such as a different filename, dimensions or title. Keep the chart’s normal display configuration separate from export-only changes so the on-screen chart is not unexpectedly altered. If you disable fallback, provide your own visible error path; users otherwise receive no useful explanation when a browser cannot complete local PDF conversion.
What html2canvas can and cannot do
html2canvas reconstructs a representation of page content by traversing the DOM. It does not take a literal screenshot and only renders CSS and elements it understands. Its documentation lists modern evergreen browsers, including Firefox, but not Internet Explorer. The limitations documentation also explains that cross-origin resources can taint a canvas and that cross-origin iframes cannot be rendered because of browser security restrictions.
That makes html2canvas potentially useful when the requirement is “capture the chart plus headings, controls or other same-origin page content.” It is not a substitute for Highcharts’ SVG-to-PDF pipeline. A canvas capture may differ from the chart’s vector export in text quality, fonts, clipping, responsive layout and print pagination.
Rank #2
- FAST PRINT AND SCAN: The Brother MFC-L3710CW lets you get things done with up to 19 ppm print speed and scans up to 29 ipm in black and 22 ipm in color
- AFFORDABLE AND FLEXIBLE COLOR PRINTING: Affordably print professional quality, rich, vivid color documents with laser printer quality. The 250 sheet adjustable paper tray helps minimize refills and the manual feed slot handles varied printing needs
- 3.7” COLOR TOUCHSCREEN: Print from and scan to popular cloud apps directly from the 3.7" color touchscreen including Dropbox, Google Drive, Evernote, OneNote and more. Save time by creating custom shortcuts on the touchscreen for your most used features.
- PRINT AND CONNECT YOUR WAY: Print wirelessly from your desktop, laptop, smartphone and tablet with built-in wireless, and Wi-Fi Direct or connect locally to a single computer via USB interface.
- UNIT DIMENSIONS (WxDxH): 16.1” W x 18.7” D x 16.3” H
Illustrative DOM capture (Firefox and supported modern browsers)
html2canvas(document.getElementById('chart'), {
backgroundColor: '#ffffff',
useCORS: true
}).then(function (canvas) {
var image = canvas.toDataURL('image/png');
// Pass image to a PDF library of your choice.
// This is a raster capture, not Highcharts' native PDF export.
});
Do not present this snippet as an IE solution. If IE is mandatory, use Highcharts’ supported export route or a server renderer and test the exact release. If your page uses remote images, web fonts, embedded frames or CSS effects, verify them individually; useCORS cannot override a server that omits appropriate cross-origin headers.
When to use the Highcharts export service
The public service receives the generated SVG from the browser and returns the requested format. Highcharts’ FAQ recommends client-side export or a private server when sending chart data to the public service is a concern: Highcharts FAQ. A service can simplify legacy-browser support because conversion occurs away from IE, but it introduces network, availability and data-transfer dependencies. Confirm that your organization permits the chart data to leave its environment.
When a self-hosted server is the better fallback
Highcharts documents a Node.js export server using Puppeteer for PDF and other formats: setting up your own export server. This is appropriate when client-side conversion lacks a required feature, the public endpoint is unsuitable, or you need operational control. You must maintain Node and browser dependencies, secure the endpoint, control resource access and monitor failures. It is not automatically simpler than local export.
IE and Firefox testing checklist
- Record the exact Highcharts and browser versions, including IE document mode.
- Verify that the correct ES5 Highcharts files are loaded for legacy releases.
- Open the browser console and confirm that exporting, offline exporting, jsPDF and svg2pdf scripts all load without syntax or network errors.
- Export a chart containing long labels, multiple series, data labels, gradients and non-Latin text.
- Check PDF dimensions, clipping, fonts, legends and tooltip-independent content.
- Test slow networks and blocked third-party scripts.
- Test charts with remote images, custom HTML, iframes and authenticated resources.
- Exercise both the local success path and the fallback/error path.
Troubleshooting common failures
“PDF export is blank”
Inspect the generated SVG and browser console. A chart that has not finished rendering, unsupported HTML content, blocked resources or missing PDF libraries can produce an empty result. Wait for the chart’s data and fonts before calling exportChart, then test a minimal chart to isolate the feature.
“The browser downloads SVG but not PDF”
SVG export does not prove that PDF dependencies are present. Load compatible svg2pdf.js and jspdf.js, configure exporting.libURL where your version requires it, and verify the exact versions against Highcharts’ optional-dependency guidance.
Rank #3
- Create a mix using audio, music and voice tracks and recordings.
- Customize your tracks with amazing effects and helpful editing tools.
- Use tools like the Beat Maker and Midi Creator.
- Work efficiently by using Bookmarks and tools like Effect Chain, which allow you to apply multiple effects at a time
- Use one of the many other NCH multimedia applications that are integrated with MixPad.
“IE throws a script or syntax error”
Use the ES5 Highcharts distribution where required and ensure every dependency supports that IE version. A modern html2canvas build is not evidence of IE support.
“The chart falls back to the server unexpectedly”
Local conversion failed or its dependencies were not found. Decide whether that is acceptable, then either fix the asset loading/configuration or set fallbackToExportServer: false and show a clear application error. Disabling fallback without an error path makes support harder.
“Images or iframes disappear in html2canvas”
Cross-origin images require appropriate server headers and cross-origin iframes cannot be rendered under browser security rules. Host assets on an allowed origin, proxy them through a controlled same-origin endpoint, or use Highcharts/server export instead.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Performance, reliability and data handling
Client-side conversion avoids an upload but consumes the user’s CPU and memory; large charts and high-resolution output increase both. A public service shifts conversion away from the browser but sends SVG over the network. A self-hosted server adds infrastructure and patching responsibility while giving you control over data and rendering. Measure export time and failure rates with the actual charts and supported browsers rather than relying on the general browser table.
Or skip the browser setup
ScreenshotNeo is a website screenshot API and MCP server. A single request returns PNG, JPEG, WebP or PDF, and it can capture full pages, selected elements and configured viewports. Before capture it accepts cookie/consent banners and removes more than 60 known consent platforms, newsletter popups and chat widgets; each step can be switched off. Bot checks, CAPTCHAs, blank pages, timeouts, failed loads and cache hits are not billed, and responses identify the page verdict and billing status in headers.
For a PDF or rendered page capture, see the ScreenshotNeo documentation and call the API:
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Repair Windows errors before they cause bigger problems3Fix the driver behind crashes, sound loss and screen glitchesRank #4
- Save money by using PDF Fusion to view over 100 file formats without having to purchase additional software
- Merge incompatible files quickly and easily by dragging and dropping in PDF Fusion to create a new PDF documents
- Save time with PDF Fusion's editing tools to reuse the content from existing documents without starting from scratch
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
It also provides an MCP server with take_screenshot, get_page_info and capture_pdf for Claude, Cursor and other MCP clients. Free usage includes 1,000 shots per month with no card; paid plans start at $5 for 3,000 shots. Create a free ScreenshotNeo account.
FAQ
Is html2canvas required for Highcharts PDF export?
No. Highcharts documents its own exporting module, offline PDF dependencies, public service and self-hosted server paths.
Does Highcharts guarantee PDF export in every IE version it lists?
No. The compatibility table is not an export-feature test matrix; validate the exact release, IE mode and chart content.
Can html2canvas capture a cross-origin iframe?
No. Its documentation cites browser security restrictions on cross-origin iframes.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallFrequently Asked Questions
Can I use html2canvas to create a vector PDF?
No. html2canvas produces a DOM-derived raster canvas; Highcharts’ PDF route uses SVG-to-PDF dependencies or server conversion.
Which option keeps chart data in my environment?
Client-side export does not send the generated SVG to a public service. A self-hosted export server is the server-side alternative under your operational control.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




