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.
Apply
Reset
<dx-chart id="chart" [dataSource]="mountains" title="The Highest Mountains"> <dxi-series argumentField="name" valueField="height" tagField="system" type="bar" color="#E55253"> </dxi-series> <dxo-argument-axis [visible]="true"></dxo-argument-axis> <dxi-value-axis [min]="8000"> <dxo-label [customizeText]="customizeLabel"></dxo-label> </dxi-value-axis> <dxo-tooltip [enabled]="true" [customizeTooltip]="customizeTooltip"></dxo-tooltip> <dxo-legend [visible]="false"></dxo-legend> </dx-chart> <div class="row" id="buttonGroup"> <dx-button class="row-element" icon="print" text="Print" (onClick)="print()"> </dx-button> <dx-button class="row-element" icon="export" text="Export" (onClick)="export()"> </dx-button> </div>
import { NgModule, Component, ViewChild } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import { DxChartModule, DxChartComponent, DxButtonModule } from 'devextreme-angular'; import { Service, Mountain} from './app.service'; @Component({ selector: 'demo-app', providers: [Service], templateUrl: 'app/app.component.html', styleUrls: ['app/app.component.css'] }) export class AppComponent { @ViewChild(DxChartComponent) chart: DxChartComponent; mountains: Mountain[]; constructor(service: Service) { this.mountains = service.getMountains(); } customizeTooltip(arg: any) { return { text: "<b>" + arg.argumentText + "</b><br />&nbsp;<br />" + "System: " + arg.point.tag + "<br />" + "Height: " + arg.valueText + " m" }; } customizeLabel(arg: any) { return arg.value + " m"; } print() { this.chart.instance.print(); } export() { this.chart.instance.exportTo("Example", "png"); } } @NgModule({ imports: [ BrowserModule, DxChartModule, DxButtonModule ], declarations: [AppComponent], bootstrap: [AppComponent] }) export class AppModule { } platformBrowserDynamic().bootstrapModule(AppModule);
/deep/ #chart { height: 440px; width: 100%; margin-bottom:30px; } /deep/ #buttonGroup { text-align: center; } /deep/ .row-element { margin: 0 20px; }
import { Injectable } from '@angular/core'; export class Mountain { name: string; height: number; system: string; } let mountains: Mountain[] = [{ 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" }]; @Injectable() export class Service { getMountains(): Mountain[] { return mountains; } }
// In real applications, you should not transpile code in the browser. You can see how to create your own application with Angular 2 and DevExtreme here: // https://github.com/DevExpress/devextreme-angular/blob/master/README.md System.config({ transpiler: 'ts', typescriptOptions: { module: "commonjs", emitDecoratorMetadata: true, experimentalDecorators: true }, meta: { 'typescript': { "exports": "ts" } }, paths: { 'npm:': 'https://unpkg.com/' }, map: { 'ts': 'npm:plugin-typescript@4.0.10/lib/plugin.js', 'typescript': 'npm:typescript@2.0.6/lib/typescript.js', '@angular/core': 'npm:@angular/core@2.4.3/bundles/core.umd.js', '@angular/common': 'npm:@angular/common@2.4.3/bundles/common.umd.js', '@angular/compiler': 'npm:@angular/compiler@2.4.3/bundles/compiler.umd.js', '@angular/platform-browser': 'npm:@angular/platform-browser@2.4.3/bundles/platform-browser.umd.js', '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic@2.4.3/bundles/platform-browser-dynamic.umd.js', '@angular/http': 'npm:@angular/http@2.4.3/bundles/http.umd.js', '@angular/router': 'npm:@angular/router@3.4.3/bundles/router.umd.js', '@angular/forms': 'npm:@angular/forms@2.4.3/bundles/forms.umd.js', 'rxjs': 'npm:rxjs@5.0.3', 'jszip': 'npm:jszip@3.1.3/dist/jszip.min.js', 'devextreme': 'npm:devextreme@16.2', 'jquery': 'npm:jquery@3.1.1/dist/jquery.min.js', 'devextreme-angular': 'npm:devextreme-angular@16.2' }, packages: { 'app': { main: './app.component.ts', defaultExtension: 'ts' }, 'devextreme': { defaultExtension: 'js' }, 'devextreme-angular': { main: 'index.js', defaultExtension: 'js' } } });
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <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/16.2.6/css/dx.spa.css" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/16.2.6/css/dx.common.css" /> <link rel="dx-theme" data-theme="generic.light" href="https://cdn3.devexpress.com/jslib/16.2.6/css/dx.light.css" /> <script src="https://unpkg.com/core-js@2.4.1/client/shim.min.js"></script> <script src="https://unpkg.com/zone.js@0.6.25/dist/zone.js"></script> <script src="https://unpkg.com/reflect-metadata@0.1.3/Reflect.js"></script> <script src="https://unpkg.com/systemjs@0.19.31/dist/system.js"></script> <script src="config.js"></script> <script> System.import('app').catch(console.error.bind(console)); </script> </head> <body class="dx-viewport"> <div class="demo-container"> <demo-app>Loading...</demo-app> </div> </body> </html>