Export to PDF
index
Description
You can Export to PDF, which will create a PDF file using the jsPDF library. This is an opt-in Service: you must download @slickgrid-universal/pdf-export and instantiate it in your grid options via externalResources.
jspdf-autotable (optional)
Install jspdf-autotable for enhanced table rendering with borders, per-column styles, proper cell padding, and more:
npm install jspdf-autotableIn bundled ES-module applications you may need to apply the AutoTable plugin explicitly at startup:
When jspdf-autotable is detected at runtime the service automatically uses it; otherwise it falls back to a simple text-based layout.
Grid Menu (hamburger menu)
The Grid Menu can include an "Export to PDF" command. You can show/hide this option with hideExportPdfCommand (defaults to false).
Grid Options
You can set options for the entire grid, such as enabling PDF export and customizing export behavior.
Column Definition and Options
excludeFromExport: skip this column in the exportexportWithFormatter: use the column's formatter for export (column-level overrides grid option)exportCustomFormatter: use a different formatter for exportsanitizeDataExport: remove HTML/script from exported datapdfExportOptions: per-column PDF export options (see interface for details)textAlign: per-column horizontal text alignment ('left'|'center'|'right'), maps to AutoTable'shalignstyle
Example — right-aligning a numeric column:
Custom Header & Footer
You can add a custom header or footer to your PDF using the documentTitle option or by customizing the export logic.
Styling the PDF
You can customize font size, orientation, margins, and more via pdfExportOptions:
Simulating PDF Zoom / Fit More Columns
jsPDF does not have a true "zoom" feature, but you can fit more columns or make the export appear smaller by reducing the font size and/or column widths in your pdfExportOptions. For example, setting fontSize and headerFontSize to 80% of their defaults will make the content appear "zoomed out" and fit more columns on the page:
You can also use pageOrientation: 'landscape' or a larger pageSize to fit more content horizontally.
Custom Colors
Header, pre-header, and alternate-row colors are configurable as RGB tuples. These apply to both the AutoTable and manual fallback rendering paths:
headerBackgroundColor
[66, 139, 202]
Column header background
headerTextColor
[255, 255, 255]
Column header text
preHeaderBackgroundColor
[108, 117, 125]
Pre-header (group) background
preHeaderTextColor
[255, 255, 255]
Pre-header (group) text
alternateRowColor
[245, 245, 245]
Alternating data row fill
cellPadding
4
AutoTable cell padding (px)
Grouped Column Headers
If your grid uses column grouping, you can enable pre-header rows in the PDF export:
Document Properties
Set PDF document metadata (visible in the viewer's "Document Properties" dialog) via the documentProperties option:
AutoTable Options Callback
Use the autoTableOptions callback to customize any AutoTable option (themes, hooks, margins, etc.) without subclassing the service:
The callback receives the fully-built AutoTable options object and must return the (optionally modified) object.
Export from a Button Click Event
You can export from the Grid Menu or trigger export from your own button:
Show Loading Process Spinner
You can subscribe to onBeforeExportToPdf and onAfterExportToPdf events to show/hide a spinner during export.
UI Sample
The Export to PDF supports Unicode, custom formatting, and grouped headers. See the demo for a preview.
For more advanced options, see the pdfExportOption.interface.ts.
Last updated