Your search did not match any results.
Charts

Export and Printing API

Documentation

DevExtreme HTML5 Data Visualization Widgets fulfill their purpose even outside the browser, thanks to the client-side export and printing features. This demo illustrates the exportTo and print API methods used for exporting and printing from code. Below the Chart, you see the «Print» and «Export» buttons. A click on the «Print» button calls the Print Dialog Window with a document ready to be printed. In this window, you can change printing options and send the document to your printer. A click on the «Export» button saves a PNG file with the widget in your local storage. PDF, JPEG, SVG, and GIF formats are supported as well.

en.wikipedia.org
Copy to CodeSandBox
Apply
Reset
<template> <div> <dx-chart id="chart" ref="chart" :data-source="mountains" title="The Highest Mountains" > <dx-series type="bar" argument-field="name" value-field="height" color="#E55253" /> <dx-argument-axis :visible="true"/> <dx-value-axis> <dx-visual-range :start-value="8000"/> <dx-label :customize-text="customizeLabelText"/> </dx-value-axis> <dx-tooltip :enabled="true" :customize-tooltip="customizeTooltipText" /> <dx-legend :visible="false"/> </dx-chart> <div id="buttonGroup"> <dx-button icon="print" text="Print" @click="printChart" /> <dx-button icon="export" text="Export" @click="exportChart" /> </div> </div> </template> <script> import DxChart, { DxSeries, DxLegend, DxTooltip, DxArgumentAxis, DxLabel, DxValueAxis, DxVisualRange } from 'devextreme-vue/chart'; import DxButton from 'devextreme-vue/button'; import { mountains } from './data.js'; export default { components: { DxChart, DxSeries, DxLegend, DxTooltip, DxArgumentAxis, DxLabel, DxValueAxis, DxVisualRange, DxButton }, data() { return { mountains }; }, methods: { printChart() { this.$refs.chart.instance.print(); }, exportChart() { this.$refs.chart.instance.exportTo('Example', 'png'); }, customizeTooltipText(pointInfo) { return { text: `<span class='title'>${pointInfo.argumentText }</span><br />&nbsp;<br />System: ${pointInfo.point.data.system }<br />Height: ${pointInfo.valueText} m` }; }, customizeLabelText({ value }) { return `${value} m`; } } }; </script> <style> #chart { height: 440px; margin-bottom:30px; } #buttonGroup { text-align: center; margin-bottom: 20px; } #buttonGroup > .dx-button { margin: 0 20px; } .title { font-size: 15px; font-weight: 500; } </style>
import Vue from 'vue'; import App from './App.vue'; new Vue({ el: '#app', components: { App }, template: '<App/>' });
<!DOCTYPE html> <html> <head> <title>DevExtreme Demo</title> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/19.2.4/css/dx.common.css" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/19.2.4/css/dx.light.css" /> <script src="https://unpkg.com/core-js@2.4.1/client/shim.min.js"></script> <script src="https://unpkg.com/systemjs@0.21.3/dist/system.js"></script> <script type="text/javascript" src="config.js"></script> <script type="text/javascript"> System.import('./index.js'); </script> </head> <body class="dx-viewport"> <div class="demo-container"> <div id="app"> </div> </div> </body> </html>
export const mountains = [{ name: 'Everest', height: 8848, system: 'Mahalangur Himalaya' }, { name: 'Godwin Austen', height: 8611, system: 'Baltoro Karakoram' }, { name: 'Kangchenjunga', height: 8586, system: 'Kangchenjunga Himalaya' }, { name: 'Lhotse', height: 8516, system: 'Mahalangur Himalaya' }, { name: 'Makalu', height: 8485, system: 'Mahalangur Himalaya' }, { name: 'Cho Oyu', height: 8188, system: 'Mahalangur Himalaya' }];
System.config({ transpiler: 'plugin-babel', paths: { 'npm:': 'https://unpkg.com/' }, map: { vue: 'npm:vue@2.6.3/dist/vue.esm.browser.js', 'vue-loader': 'npm:dx-systemjs-vue-browser@latest/index.js', 'devextreme': 'npm:devextreme@19.2', 'devextreme-vue': 'npm:devextreme-vue@19.2', jszip: 'npm:jszip@3.1.3/dist/jszip.min.js', 'quill': 'npm:quill@1.3.7/dist/quill.js', 'devexpress-diagram': 'npm:devexpress-diagram', 'stackblur-canvas': 'npm:stackblur-canvas', 'rgbcolor': 'npm:rgbcolor', 'canvg': 'npm:canvg', 'plugin-babel': 'npm:systemjs-plugin-babel@0/plugin-babel.js', 'systemjs-babel-build': 'npm:systemjs-plugin-babel@0/systemjs-babel-browser.js' }, meta: { '*.vue': { loader: 'vue-loader' } }, packages: { 'devextreme-vue': { main: 'index.js' }, 'devextreme': { defaultExtension: 'js' } }, babelOptions: { sourceMaps: false, stage0: true } });