---
title: "PDF Export API Reference"
enterprise: true
framework: javascript
version: "36.1.0"
---

# PDF Export API Reference

This page documents the PDF Export API and interfaces.

### Grid Properties

### API Methods

## Interfaces

### PdfExportParams

Properties available on the `PdfExportParams` interface.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `documentTitle` | `string` |  |  | The document title stored in the PDF metadata. When set, a visible title is rendered above the exported table. |
| `documentTitleStyle` | `PdfDocumentTitleStyle` |  |  | Styling for the visible document title. |
| `colors` | `PdfColors` |  |  | Override PDF colours. Any missing values fall back to the current theme. |
| `skipGridStyles` | `boolean` |  | `false` | Set to `true` to skip applying grid style definitions and callbacks (`rowStyle`, `getRowStyle`, `colDef.cellStyle`, `colDef.headerStyle`). Use this when you want to rely only on `colors` and theme defaults. |
| `processStyleCallback` | `Function` |  |  | Callback that allows overriding styles for rows, cells, row groups, headers and group headers during PDF export. Returned styles are merged after resolved grid styles and take precedence. |
| `processCellHyperlinkCallback` | `Function` |  |  | Callback that provides an external URI for an exported body cell. The returned URI is added to the PDF as a clickable link annotation. |
| `page` | `PdfPageSetup` |  |  | Page size, orientation and margins. |
| `fontSize` | `number` |  | `10` | Base font size for body rows in points. |
| `headerFontSize` | `number` |  | `11` | Base font size for header rows in points. |
| `fontFamily` | `PdfFontFamily` |  | `'Helvetica'` | Base font family for body rows. |
| `headerFontFamily` | `PdfFontFamily` |  | `derived bold variant of `fontFamily`` | Font family for header rows. |
| `cellPadding` | `number` |  | `4` | Padding inside each cell in points. |
| `columnWidth` | `PdfColumnWidth \| PdfColumnWidthCallback` |  |  | Controls exported column widths. Use `auto` to size from exported content, `grid` to use the current grid width, a number for a width in points, or a callback for per-column control. Widths are proportionally reduced when their total exceeds the printable page width. By default, current grid widths are used except for the Row Numbers column, which is sized from its exported content. |
| `wrapText` | `boolean` |  | `false` | Whether table cell text should wrap onto multiple lines. This can be overridden for individual rows or cells with `PdfCellStyle.wrapText`. |
| `lineHeight` | `number` |  | `fontSize` | Default distance between text baselines in points. |
| `maxLines` | `number` |  |  | Default maximum number of rendered text lines. |
| `overflow` | `PdfTextOverflow` |  | `'ellipsis'` | Default policy for text exceeding width, height or line limits. |
| `rowGroupIndentSize` | `number` |  | `12` | Horizontal indentation in points for each row-group level. |
| `rowHeight` | `number` |  |  | Height of body rows in points. If omitted, calculated from font size and padding. |
| `headerRowHeight` | `number` |  |  | Height of header rows in points. If omitted, calculated from header font size and padding. |
| `repeatHeader` | `boolean` |  | `true` | Set to `false` to avoid repeating header rows on each page. |
| `drawCellBorders` | `boolean` |  | `true` | Set to `false` to skip drawing cell borders. |
| `prependContent` | `PdfCustomContent` |  |  | Content to put at the top of the exported sheet. |
| `appendContent` | `PdfCustomContent` |  |  | Content to put at the bottom of the exported sheet. |
| `getCustomContentBelowRow` | `Function` |  |  | A callback function to return content to be inserted below a row in the export. |
| `exportRowNumbers` | `boolean` |  |  | Set to `true` to allow the contents of the Row Numbers column to be exported. |
| `fileName` | `string \| ExportFileNameGetter` |  | `'export.pdf'` | String to use as the file name or a function that returns a string. |
| `mimeType` | `string` |  | `'application/pdf'` | The mimeType of the PDF file. |
| `allColumns` | `boolean` |  | `false` | If `true`, all columns will be exported in the order they appear in the columnDefs. When `false` only the columns currently being displayed will be exported. |
| `columnKeys` | `(string \| Column)[]` |  |  | Provide a list (an array) of column keys or Column objects if you want to export specific columns. |
| `rowPositions` | `RowPosition[]` |  |  | Row node positions. |
| `exportedRows` | `'all' \| 'filteredAndSorted'` |  | `'filteredAndSorted'` | Determines whether rows are exported before being filtered and sorted. |
| `onlySelected` | `boolean` |  | `false` | Export only selected rows. |
| `onlySelectedAllPages` | `boolean` |  | `false` | Only export selected rows including other pages (only makes sense when using pagination). |
| `skipColumnGroupHeaders` | `boolean` |  | `false` | Set to `true` to exclude header column groups. |
| `skipColumnHeaders` | `boolean` |  | `false` | Set to `true` if you don't want to export column headers. |
| `skipRowGroups` | `boolean` |  | `false` | Set to `true` to skip row group headers if grouping rows. Only relevant when grouping rows. |
| `skipPinnedTop` | `boolean` |  | `false` | Set to `true` to suppress exporting rows pinned to the top of the grid. |
| `skipPinnedBottom` | `boolean` |  | `false` | Set to `true` to suppress exporting rows pinned to the bottom of the grid. |
| `skipPinnedRowDuplicates` | `boolean` |  | `false` | Set to `true` to omit the body copies of manually pinned rows. The rows in the pinned sections are still exported unless `skipPinnedTop` or `skipPinnedBottom` is enabled. |
| `valueFrom` | `CellValueResolveFrom` |  | `'data'` | The base source to use for getting cell values. `'data'`: values from the underlying row data `'batch'`: pending batch edit values (falls back to data if not in batch mode) `'edit'`: current editor values including live typing |
| `transformValues` | `boolean` |  | `true` | Apply the Show Values As transform (e.g. a percentage of a total) on top of the `valueFrom` base, so the export carries the displayed value for columns with an active mode. Columns without one export the base value. |
| `shouldRowBeSkipped` | `Function` |  |  | A callback function that will be invoked once per row in the grid. Return true to omit the row from the export. |
| `processCellCallback` | `Function` |  |  | A callback function invoked once per cell in the grid. Return a string value to be displayed in the export. For example this is useful for formatting date values. |
| `processHeaderCallback` | `Function` |  |  | A callback function invoked once per column. Return a string to be displayed in the column header. |
| `processGroupHeaderCallback` | `Function` |  |  | A callback function invoked once per column group. Return a `string` to be displayed in the column group header. Note that column groups are exported by default, this option will not work with `skipColumnGroupHeaders=true`. |
| `processRowGroupCallback` | `Function` |  |  | A callback function invoked once per row group. Return a `string` to be displayed in the group cell. |

### PdfColors

Properties available on the `PdfColors` interface.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `backgroundColor` | `string` |  |  | Background colour for the PDF page. Defaults to the theme `backgroundColor`. |
| `dataBackgroundColor` | `string` |  |  | Background colour for body rows. Defaults to the theme `dataBackgroundColor`. |
| `oddRowBackgroundColor` | `string` |  |  | Alternate background colour for odd body rows. Defaults to the theme `oddRowBackgroundColor`. |
| `foregroundColor` | `string` |  |  | Text colour for body rows. Defaults to the theme `foregroundColor`. |
| `headerBackgroundColor` | `string` |  |  | Background colour for header rows. Defaults to the theme `headerBackgroundColor`. |
| `headerTextColor` | `string` |  |  | Text colour for header rows. Defaults to the theme `headerTextColor`. |
| `borderColor` | `string` |  |  | Border colour for cell outlines. Defaults to the theme `borderColor`. |

### PdfCellStyle

Properties available on the `PdfCellStyle` interface.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `fontSize` | `number` |  |  | Font size in points. |
| `fontFamily` | `PdfFontFamily` |  |  | Font family. |
| `fontWeight` | `PdfFontWeight` |  |  | Font weight. When omitted, the weight from the resolved font family is preserved. |
| `color` | `string` |  |  | Text colour. |
| `backgroundColor` | `string` |  |  | Background colour. |
| `borderColor` | `string` |  |  | Border colour. |
| `borderWidth` | `number` |  |  | Border width in points. Defaults to 1 when `borderColor` is set, otherwise 0. |
| `padding` | `number \| PdfMargin` |  |  | Padding inside the cell in points. A number applies to all sides. |
| `alignment` | `PdfTextAlignment` |  |  | Horizontal alignment for the cell text. |
| `wrapText` | `boolean` |  |  | Whether text should wrap onto multiple lines. Wrapped content increases the row height as required. |
| `preserveLineBreaks` | `boolean` |  | `true when wrapText is true, otherwise false` | Whether explicit line breaks should be preserved. |
| `preserveSpaces` | `boolean` |  | `false` | Whether repeated, leading and trailing spaces should be preserved when text wraps. |
| `lineHeight` | `number` |  | `fontSize` | Distance between text baselines in points. |
| `maxLines` | `number` |  |  | Maximum number of rendered text lines. |
| `overflow` | `PdfTextOverflow` |  | `'ellipsis'` | How text exceeding the available width, height or line limit is indicated. |

### PdfDocumentTitleStyle

Properties available on the `PdfDocumentTitleStyle` interface.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `margin` | `number \| PdfMargin` |  |  | Margin around the document title in points. A number applies to all sides. |
| `fontSize` | `number` |  |  | Font size in points. |
| `fontFamily` | `PdfFontFamily` |  |  | Font family. |
| `fontWeight` | `PdfFontWeight` |  |  | Font weight. When omitted, the weight from the resolved font family is preserved. |
| `color` | `string` |  |  | Text colour. |
| `backgroundColor` | `string` |  |  | Background colour. |
| `borderColor` | `string` |  |  | Border colour. |
| `borderWidth` | `number` |  |  | Border width in points. Defaults to 1 when `borderColor` is set, otherwise 0. |
| `padding` | `number \| PdfMargin` |  |  | Padding inside the cell in points. A number applies to all sides. |
| `alignment` | `PdfTextAlignment` |  |  | Horizontal alignment for the cell text. |
| `wrapText` | `boolean` |  |  | Whether text should wrap onto multiple lines. Wrapped content increases the row height as required. |
| `preserveLineBreaks` | `boolean` |  | `true when wrapText is true, otherwise false` | Whether explicit line breaks should be preserved. |
| `preserveSpaces` | `boolean` |  | `false` | Whether repeated, leading and trailing spaces should be preserved when text wraps. |
| `lineHeight` | `number` |  | `fontSize` | Distance between text baselines in points. |
| `maxLines` | `number` |  |  | Maximum number of rendered text lines. |
| `overflow` | `PdfTextOverflow` |  | `'ellipsis'` | How text exceeding the available width, height or line limit is indicated. |

### PdfPageSetup

Properties available on the `PdfPageSetup` interface.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `size` | `PdfPageSize` |  | `'A4'` | The size of the PDF page. |
| `orientation` | `PdfPageOrientation` |  | `'landscape'` | Page orientation. |
| `margin` | `number \| PdfMargin` |  | `36` | Page margins in points. A number applies to all sides. |

### PdfCell

Properties available on the `PdfCell` interface.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `data` | `PdfCellData` | Yes |  | The data that will be added to the cell. |
| `mergeAcross` | `number` |  | `0` | The number of cells to span across (1 means span 2 columns). |
| `style` | `PdfCellStyle` |  |  | Optional styling for the cell. |

### PdfCellData

Properties available on the `PdfCellData` interface.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `value` | `string \| null` | Yes |  | The value of the cell. |
| `hyperlink` | `string` |  |  | External URI opened when the exported cell text is selected. |

### PdfRowStyleCallbackParams

Properties available on the `PdfRowStyleCallbackParams&lt;TData = any, TContext = any&gt;` interface.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `type` | `'row'` |  |  | The exported element type currently being styled. |
| `node` | [`IRowNode \| null`](https://www.ag-grid.com/javascript-data-grid/row-object/) |  |  | The row node for the exported row. |
| `accumulatedRowIndex` | `number` |  |  | 1-based index of the current exported row. |
| `value` | `any` |  |  | The current value for the exported element. |
| `api` | [`GridApi`](https://www.ag-grid.com/javascript-data-grid/grid-api/) |  |  | The grid api. |
| `context` | [`TContext`](https://www.ag-grid.com/javascript-data-grid/typescript-generics/#context-tcontext) |  |  | Application context as set on `gridOptions.context`. |

### PdfCellStyleCallbackParams

Properties available on the `PdfCellStyleCallbackParams&lt;TData = any, TContext = any&gt;` interface.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `type` | `'cell' \| 'rowgroup'` |  |  | The exported element type currently being styled. |
| `node` | [`IRowNode \| null`](https://www.ag-grid.com/javascript-data-grid/row-object/) |  |  | The row node for the exported cell. |
| `column` | [`Column`](https://www.ag-grid.com/javascript-data-grid/column-object/) |  |  | The current column. |
| `accumulatedRowIndex` | `number` |  |  | 1-based index of the current exported row. |
| `value` | `any` |  |  | The current value for the exported element. |
| `api` | [`GridApi`](https://www.ag-grid.com/javascript-data-grid/grid-api/) |  |  | The grid api. |
| `context` | [`TContext`](https://www.ag-grid.com/javascript-data-grid/typescript-generics/#context-tcontext) |  |  | Application context as set on `gridOptions.context`. |

### PdfCellHyperlinkCallbackParams

Properties available on the `PdfCellHyperlinkCallbackParams&lt;TData = any, TContext = any&gt;` interface.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `value` | `string` |  |  | The final text exported for the cell. |
| `accumulatedRowIndex` | `number` |  |  | The 1-based index of the current exported row. |
| `node` | [`IRowNode`](https://www.ag-grid.com/javascript-data-grid/row-object/) |  |  | The row node for the exported cell. |
| `column` | [`Column`](https://www.ag-grid.com/javascript-data-grid/column-object/) |  |  | The current column. |
| `api` | [`GridApi`](https://www.ag-grid.com/javascript-data-grid/grid-api/) |  |  | The grid api. |
| `context` | [`TContext`](https://www.ag-grid.com/javascript-data-grid/typescript-generics/#context-tcontext) |  |  | Application context as set on `gridOptions.context`. |

### PdfHeaderStyleCallbackParams

Properties available on the `PdfHeaderStyleCallbackParams&lt;TData = any, TContext = any&gt;` interface.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `type` | `'header'` |  |  | The exported element type currently being styled. |
| `column` | [`Column`](https://www.ag-grid.com/javascript-data-grid/column-object/) |  |  | The current column. |
| `accumulatedRowIndex` | `number` |  |  | 1-based index of the current exported row. |
| `value` | `any` |  |  | The current value for the exported element. |
| `api` | [`GridApi`](https://www.ag-grid.com/javascript-data-grid/grid-api/) |  |  | The grid api. |
| `context` | [`TContext`](https://www.ag-grid.com/javascript-data-grid/typescript-generics/#context-tcontext) |  |  | Application context as set on `gridOptions.context`. |

### PdfGroupHeaderStyleCallbackParams

Properties available on the `PdfGroupHeaderStyleCallbackParams&lt;TData = any, TContext = any&gt;` interface.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `type` | `'groupheader'` |  |  | The exported element type currently being styled. |
| `column` | [`ColumnGroup`](https://www.ag-grid.com/javascript-data-grid/column-object-group/) |  |  | The current column group. |
| `accumulatedRowIndex` | `number` |  |  | 1-based index of the current exported row. |
| `value` | `any` |  |  | The current value for the exported element. |
| `api` | [`GridApi`](https://www.ag-grid.com/javascript-data-grid/grid-api/) |  |  | The grid api. |
| `context` | [`TContext`](https://www.ag-grid.com/javascript-data-grid/typescript-generics/#context-tcontext) |  |  | Application context as set on `gridOptions.context`. |

### ColumnWidthCallbackParams

Properties available on the `ColumnWidthCallbackParams` interface.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `column` | [`Column \| null`](https://www.ag-grid.com/javascript-data-grid/column-object/) |  |  | Column \| null |
| `index` | `number` |  |  | number |

### PdfMargin

Properties available on the `PdfMargin` interface.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `top` | `number` |  |  | Top margin in points. |
| `right` | `number` |  |  | Right margin in points. |
| `bottom` | `number` |  |  | Bottom margin in points. |
| `left` | `number` |  |  | Left margin in points. |

## Types

### PdfCustomContent

```ts

type PdfCustomContent = PdfCell[][] | string
```

### PdfPageOrientation

```ts

type PdfPageOrientation = 
      'portrait' 
    | 'landscape'
```

### PdfPageSize

```ts

type PdfPageSize = 
      'A4' 
    | 'Letter' 
    | { width: number; height: number; }
```

### PdfFontFamily

```ts

type PdfFontFamily = 
      'Helvetica' 
    | 'Helvetica-Bold' 
    | 'Times-Roman' 
    | 'Times-Bold' 
    | 'Courier' 
    | 'Courier-Bold'
```

### PdfTextAlignment

```ts

type PdfTextAlignment = 
      'left' 
    | 'center' 
    | 'right'
```

### PdfFontWeight

```ts

type PdfFontWeight = 'normal' | 'bold'
```

### PdfTextOverflow

```ts

type PdfTextOverflow = 'clip' | 'ellipsis'
```

### PdfColumnWidth

```ts

type PdfColumnWidth = 
      number 
    | 'auto' 
    | 'grid'
```

### PdfColumnWidthCallback

```ts

type PdfColumnWidthCallback = 
      (params: ColumnWidthCallbackParams) => PdfColumnWidth 
    | null 
    | undefined
```

### PdfStyleCallbackParams

```ts

type PdfStyleCallbackParams = 
      PdfRowStyleCallbackParams<<span/>TData, TContext> 
    | PdfCellStyleCallbackParams<<span/>TData, TContext> 
    | PdfHeaderStyleCallbackParams<<span/>TData, TContext> 
    | PdfGroupHeaderStyleCallbackParams<<span/>TData, TContext>
```

### PdfStyleCallbackType

```ts

type PdfStyleCallbackType = 
      'cell' 
    | 'row' 
    | 'rowgroup' 
    | 'header' 
    | 'groupheader'
```
