Angular Common - Utils - pdfExporter
exportDataGrid(options)
A Promise that resolves when grid data is ready for export. If you use jQuery, the return value is a jQuery.Promise. In other cases, it's a native JavaScript Promise.
This method uses jsPDF v2.3.1+ to export data and create PDF files.
If you use jQuery, store links to the jsPDF library within the <head>
tag. If you use Angular, Vue, or React, install the library with the following command:
- npm install jspdf
You can call this method at any point in your application.
Warning: You need to perform extra steps to generate PDFs with non-ASCII characters. See the PDF Export guide for more information.
In the following example, the onClick handler of a standalone button fires this method:
- <dx-button ...
- (onClick)="exportGrid($event)">
- </dx-button>
- <dx-data-grid ... >
- <!-- ... -->
- </dx-data-grid>
- import { Component } from '@angular/core';
- import { exportDataGrid as exportDataGridToPdf } from 'devextreme/pdf_exporter';
- import { jsPDF } from 'jspdf';
- @Component({
- selector: 'app-root',
- templateUrl: './app.component.html',
- styleUrls: ['./app.component.css']
- })
- export class AppComponent {
- @ViewChild(DxDataGridComponent, { static: false }) dataGrid: DxDataGridComponent;
- exportGrid() {
- const doc = new jsPDF();
- exportDataGridToPdf({
- jsPDFDocument: doc,
- component: this.dataGrid.instance
- }).then(() => {
- doc.save('Customers.pdf');
- })
- }
- }
- import { BrowserModule } from '@angular/platform-browser';
- import { NgModule } from '@angular/core';
- import { AppComponent } from './app.component';
- import { DxDataGridModule, DxButtonModule } from 'devextreme-angular';
- @NgModule({
- declarations: [
- AppComponent
- ],
- imports: [
- BrowserModule,
- DxDataGridModule,
- DxButtonModule
- ],
- providers: [ ],
- bootstrap: [AppComponent]
- })
- export class AppModule { }
exportGantt(options)
A Promise that resolves when the Gantt data is ready for export. It is a native Promise or a jQuery.Promise when you use jQuery.
This method uses jsPDF v2.3.1+ to generate PDF files, and the jsPDF-AutoTable plugin to create tables within the PDF.
Warning: You need to perform extra steps to generate PDFs with non-ASCII characters. See the PDF Export guide. for more information.
In the following example, the onClick handler of a standalone toolbar item fires this method:
- <dx-gantt ...>
- <dxo-toolbar>
- <!-- ... -->
- <dxi-item
- widget="dxButton"
- [options]="exportButtonOptions">
- </dxi-item>
- </dxo-toolbar>
- </dx-gantt>
- import { Component } from '@angular/core';
- import { jsPDF } from 'jspdf';
- import 'jspdf-autotable';
- @Component({
- selector: 'app-root',
- templateUrl: './app.component.html',
- styleUrls: ['./app.component.css']
- })
- export class AppComponent {
- @ViewChild(DxGanttComponent, { static: false }) gantt: DxGanttComponent;
- exportButtonOptions: any;
- constructor() {
- this.exportButtonOptions = {
- hint: 'Export to PDF',
- icon: 'exportpdf',
- stylingMode: 'text',
- onClick: () => this.exportButtonClick()
- };
- }
- exportButtonClick() {
- const gantt = this.gantt.instance;
- exportGanttToPdf(
- {
- component: gantt,
- createDocumentMethod: (args?: any) => new jsPDF(args),
- format: 'a4',
- exportMode: 'all'',
- dateRange: 'visible''
- }
- ).then(doc => doc.save('gantt.pdf'));
- }
- // ...
- }
- import { BrowserModule } from '@angular/platform-browser';
- import { NgModule } from '@angular/core';
- import { AppComponent } from './app.component';
- import { DxGanttComponent, DxGanttModule } from 'devextreme-angular';
- import { exportGantt as exportGanttToPdf } from 'devextreme/pdf_exporter';
- @NgModule({
- imports: [
- BrowserModule,
- DxGanttModule
- ],
- declarations: [AppComponent],
- bootstrap: [AppComponent]
- })
- export class AppModule { }
The following code snippet illustrates how to process the PDF document when the export is complete:
- var gantt = $("#ganttContainer").dxGantt("instance");
- gantt.exportToPdf({
- format: "A4",
- landscape: true,
- exportMode: "chart",
- dateRange: "visible"
- }).then(function(doc) {
- doc.addPage();
- // your code
- doc.save('customDoc.pdf');
- });
To print the exported PDF document, call the autoPrint method:
- var gantt = $("#ganttContainer").dxGantt("instance");
- gantt.exportToPdf({
- format: "A4",
- landscape: true,
- exportMode: "chart",
- dateRange: "visible"
- }).then(function(doc) {
- doc.autoPrint();
- window.open(doc.output('your_url'), '_blank');
- });
If you have technical questions, please create a support ticket in the DevExpress Support Center.