Skip to content

Commit 08d817f

Browse files
authored
Add PDF exporter sample (#3826)
* fix(pdf): add exportData sample
1 parent 435df1d commit 08d817f

8 files changed

Lines changed: 77 additions & 0 deletions

File tree

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
/* eslint-disable @typescript-eslint/naming-convention */
2+
import { Config, IConfigGenerator } from 'igniteui-live-editing';
3+
import { BaseAppConfig } from './BaseConfig';
4+
5+
export class ExportPdfConfigGenerator implements IConfigGenerator {
6+
7+
public generateConfigs(): Config[] {
8+
const configs = new Array<Config>();
9+
10+
configs.push(new Config({
11+
component: 'PdfExportComponent',
12+
appConfig: BaseAppConfig
13+
}));
14+
15+
return configs;
16+
}
17+
}

live-editing/generators/ConfigGenerators.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import { DropDownConfigGenerator } from '../configs/DropDownConfigGenerator';
2424
import { ExpansionPanelConfigGenerator } from '../configs/ExpansionPanelConfigGenerator';
2525
import { ExportCsvConfigGenerator } from '../configs/ExportCsvConfigGenerator';
2626
import { ExportExcelConfigGenerator } from '../configs/ExportExcelConfigGenerator';
27+
import { ExportPdfConfigGenerator } from '../configs/ExportPdfConfigGenerator';
2728
import { ForConfigGenerator } from '../configs/ForConfigGenerator';
2829
import { GridConfigGenerator } from '../configs/GridConfigGenerator';
2930
import { HierarchicalGridConfigGenerator } from '../configs/HierarchicalGridConfigGenerator';
@@ -71,6 +72,7 @@ export const CONFIG_GENERATORS =
7172
DragAndDropConfigGenerator,
7273
ExportCsvConfigGenerator,
7374
ExportExcelConfigGenerator,
75+
ExportPdfConfigGenerator,
7476

7577
// containers:
7678
AccordionConfigGenerator,
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<p>
2+
Press the "Export Data" button below to export an array as a .pdf file.<br />
3+
</p>
4+
<button igxButton="contained" (click)="exportButtonHandler()">Export Data</button><br />

src/app/services/export-pdf/pdf-export.component.scss

Whitespace-only changes.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
2+
3+
import { PdfExportComponent } from './pdf-export.component';
4+
5+
describe('PdfExportComponent', () => {
6+
let component: PdfExportComponent;
7+
let fixture: ComponentFixture<PdfExportComponent>;
8+
9+
beforeEach(waitForAsync(() => {
10+
TestBed.configureTestingModule({
11+
imports: [PdfExportComponent]
12+
}).compileComponents();
13+
}));
14+
15+
beforeEach(() => {
16+
fixture = TestBed.createComponent(PdfExportComponent);
17+
component = fixture.componentInstance;
18+
fixture.detectChanges();
19+
});
20+
21+
it('should create', () => {
22+
expect(component).toBeTruthy();
23+
});
24+
});
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import { Component, inject, signal } from '@angular/core';
2+
import { IgxPdfExporterOptions, IgxPdfExporterService } from 'igniteui-angular/grids/core';
3+
import { IgxButtonDirective } from 'igniteui-angular/directives';
4+
5+
@Component({
6+
selector: 'app-pdf-export',
7+
styleUrls: ['./pdf-export.component.scss'],
8+
templateUrl: './pdf-export.component.html',
9+
imports: [IgxButtonDirective]
10+
})
11+
export class PdfExportComponent {
12+
private pdfExportService = inject(IgxPdfExporterService);
13+
14+
public localData = signal([
15+
{ Name: 'Eric Ridley', Age: '26' },
16+
{ Name: 'Alanis Brook', Age: '22' },
17+
{ Name: 'Jonathan Morris', Age: '23' }
18+
]);
19+
20+
public exportButtonHandler() {
21+
this.pdfExportService.exportData(this.localData(), new IgxPdfExporterOptions('ExportFileFromData'));
22+
}
23+
}

src/app/services/services-routes-data.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ export const servicesRoutesData = {
55
'export-excel': { displayName: 'Excel Export Raw Data', parentName: 'Excel Export' },
66
'export-excel-sample-1': { displayName: 'Excel Export Grid', parentName: 'Excel Export' },
77
'export-excel-tree-grid-sample': { displayName: 'Excel Export TreeGrid', parentName: 'Excel Export' },
8+
'export-pdf': { displayName: 'PDF Export Raw Data', parentName: 'PDF Export' },
89
'localization-sample-1': { displayName: 'Localize one component', parentName: 'Localization' },
910
'localization-sample-2': { displayName: 'Localize All', parentName: 'Localization' },
1011
'localization-sample-3': { displayName: 'Localize partially', parentName: 'Localization' },

src/app/services/services.routes.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import { LocalizationSample2Component } from './localization-samples/localizatio
1212
import { LocalizationSample3Component } from './localization-samples/localization-sample-3/localization-sample-3.component';
1313
import { servicesRoutesData } from './services-routes-data';
1414
import { TransactionBaseComponent } from './transaction/transaction-base/transaction-base.component';
15+
import { PdfExportComponent } from './export-pdf/pdf-export.component';
1516
// tslint:enable:max-line-length
1617

1718
export const ServicesRoutes: Routes = [
@@ -40,6 +41,11 @@ export const ServicesRoutes: Routes = [
4041
data: servicesRoutesData['export-excel-sample-1'],
4142
path: 'export-excel-sample-1'
4243
},
44+
{
45+
component: PdfExportComponent,
46+
data: servicesRoutesData['export-pdf'],
47+
path: 'export-pdf'
48+
},
4349
{
4450
component: TreeGridExcelExportSample1Component,
4551
data: servicesRoutesData['export-excel-tree-grid-sample'],

0 commit comments

Comments
 (0)