[API](/solutions/geotoolkit/geotoolkit_js/apis/readme) / [geotoolkit](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit) / [pdf](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.pdf) / [PdfExport](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.pdf#pdfexport) / PdfExport

# Class: PdfExport

[pdf](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.pdf).[PdfExport](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.pdf#pdfexport).PdfExport

Utility class to export node

## Table of contents

Constructors
- [new PdfExport()](/solutions/geotoolkit/GeoToolkit_JS/apis/classes/geotoolkit.pdf.pdfexport.pdfexport.md#new pdfexport())


Methods
| [documentExportToPdf](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.pdf.pdfexport.pdfexport#documentexporttopdf) | [documentExportToPdfStream](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.pdf.pdfexport.pdfexport#documentexporttopdfstream) | [documentExportToPdfStreamAsync](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.pdf.pdfexport.pdfexport#documentexporttopdfstreamasync) |
|  --- | --- | --- |
| [embedFont](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.pdf.pdfexport.pdfexport#embedfont) | [exportToPdf](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.pdf.pdfexport.pdfexport#exporttopdf) | [getStreamCompression](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.pdf.pdfexport.pdfexport#getstreamcompression) |
| [setImageCompression](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.pdf.pdfexport.pdfexport#setimagecompression) | [setStreamCompression](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.pdf.pdfexport.pdfexport#setstreamcompression) | [enableClipping](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.pdf.pdfexport.pdfexport#enableclipping) |
| [isSupported](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.pdf.pdfexport.pdfexport#issupported) | [setMaximumImageSize](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.pdf.pdfexport.pdfexport#setmaximumimagesize) |


## Contents

Constructors
#### new PdfExport()

• **new PdfExport**()

Methods
#### documentExportToPdf

▸ **documentExportToPdf**(`document`, `printSettings`): `string` | `Uint8Array`

Export document to PDF

**`Throws`**

if memory is not enough

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `document` | [`Document`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.exports.document.document) | document to be exported |
| `printSettings` | [`DocumentExportSettings`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.pdf#pdfexport#documentexportsettings) | info about print settings |


#### Returns

`string` | `Uint8Array`

PDF in string

#### documentExportToPdfStream

▸ **documentExportToPdfStream**(`document`, `printSettings`, `pdfStream?`): [`IWritable`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.stream.iwritable.iwritable)

Export document to PDF stream

**`Throws`**

if memory is not enough

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `document` | [`Document`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.exports.document.document) | document to export |
| `printSettings` | [`DocumentExportSettings`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.pdf#pdfexport#documentexportsettings) | info about print settings |
| `Optional` `pdfStream` | [`IWritable`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.stream.iwritable.iwritable) | output stream for pdf |


#### Returns

[`IWritable`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.stream.iwritable.iwritable)

PDF stream

#### documentExportToPdfStreamAsync

▸ **documentExportToPdfStreamAsync**(`document`, `printSettings`, `pdfStream?`, `progress?`): `Promise`<[`IWritable`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.stream.iwritable.iwritable)&gt;

Export document to PDF stream asynchronously

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `document` | [`Document`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.exports.document.document) | document to export |
| `printSettings` | [`DocumentExportSettings`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.pdf#pdfexport#documentexportsettings) | info about print settings |
| `Optional` `pdfStream` | [`IWritable`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.stream.iwritable.iwritable) | output stream for pdf |
| `Optional` `progress` | (`currentPage`: `number`, `totalPages`: `number`) => `void` | - 
 |


#### Returns

`Promise`<[`IWritable`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.stream.iwritable.iwritable)&gt;

#### embedFont

▸ **embedFont**(`subType`, `fontName`, `fontWeight`, `fontStyle`, `fontBase64EncodedFile`, `encoding`): `void`

Embeds font into PDF

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `subType` | [`FontSubType`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.pdf#fontsubtype) | sub type |
| `fontName` | `string` | font name |
| `fontWeight` | `string` | font weight |
| `fontStyle` | `string` | font style |
| `fontBase64EncodedFile` | `string` | base64 encoded True Type Font file (TTF) |
| `encoding` | `string` | encoding Identity-H |


#### Returns

`void`

#### exportToPdf

▸ **exportToPdf**(`root`, `imageWidth`, `imageHeight`, `modelLimits`): [`IWritable`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.stream.iwritable.iwritable)

Export group to PDF

**`Throws`**

if memory is not enough

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `root` | [`Group`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.group.group)<[`Node`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.node.node)&gt; | root node to be used for export. |
| `imageWidth` | `number` | image width(Optional) |
| `imageHeight` | `number` | image height (Optional) |
| `modelLimits` | [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect) | modellimits (Optional) |


#### Returns

[`IWritable`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.stream.iwritable.iwritable)

PDF Content

#### getStreamCompression

▸ **getStreamCompression**(): `boolean`

Return status of stream compression if it is enable or disable

#### Returns

`boolean`

#### setImageCompression

▸ **setImageCompression**(`method`, `quality?`, `speed?`): [`PdfExport`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.pdf.pdfexport.pdfexport)

set image compression settings for the pdf export.
right now three methods are available [ImageCompression](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.pdf#imagecompression#imagecompression),
if you select the PNG method, then you could pass a [SpeedCompression](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.pdf#speedcompression#speedcompression) speed parameter
if you select the JPEG method, then you could pass a number ranged from 0 to 1 to specify the quality of the image
if you select the NONE method, all parameters will be ignored.
WARNING! if you select the NONE method and memory is not enough, the PNG method will be selected

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `method` | [`ImageCompression`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.pdf#imagecompression) | method |
| `Optional` `quality` | `number` | level of quality |
| `Optional` `speed` | [`SpeedCompression`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.pdf#speedcompression) | compression speed |


#### Returns

[`PdfExport`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.pdf.pdfexport.pdfexport)

#### setStreamCompression

▸ **setStreamCompression**(`enable`): [`PdfExport`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.pdf.pdfexport.pdfexport)

Enable or disable stream compression. By default it is enable

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `enable` | `boolean` | enable or disable image compression |


#### Returns

[`PdfExport`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.pdf.pdfexport.pdfexport)

#### enableClipping

▸ `Static` **enableClipping**(`textClippingEnabled`, `imageClippingEnabled`): `void`

Static method to Enable/Disable Text and Image Clipping in Pdf

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `textClippingEnabled` | `boolean` | Text Shape Clipping (default: true) |
| `imageClippingEnabled` | `boolean` | Image Shape Clipping (default: true) |


#### Returns

`void`

#### isSupported

▸ `Static` **isSupported**(): `boolean`

Returns true if exporting a PDF is supported by this browser

#### Returns

`boolean`

#### setMaximumImageSize

▸ `Static` **setMaximumImageSize**(`maximumImageSize`): `void`

Sets maximum image size (in bytes)

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `maximumImageSize` | `number` | image size for forced selecting PNG compression method |


#### Returns

`void`