---
product: "AG Grid"
title: "PDF Export - Watermarks"
description: "PDF watermarks display translucent status text, such as or , across the exported page content. Watermarks do not affect table measurement or pagination."
enterprise: true
framework: react
version: "36.2.0"
related:
    - title: "Styles"
      url: "https://www.ag-grid.com/archive/36.2.0/react-data-grid/pdf-export-styles/"
    - title: "Languages"
      url: "https://www.ag-grid.com/archive/36.2.0/react-data-grid/pdf-export-languages/"
    - title: "Extra Content"
      url: "https://www.ag-grid.com/archive/36.2.0/react-data-grid/pdf-export-extra-content/"
    - title: "Customising Content"
      url: "https://www.ag-grid.com/archive/36.2.0/react-data-grid/pdf-export-customising-content/"
    - title: "Images"
      url: "https://www.ag-grid.com/archive/36.2.0/react-data-grid/pdf-export-images/"
    - title: "Rows"
      url: "https://www.ag-grid.com/archive/36.2.0/react-data-grid/pdf-export-rows/"
    - title: "Columns"
      url: "https://www.ag-grid.com/archive/36.2.0/react-data-grid/pdf-export-columns/"
    - title: "Hyperlinks"
      url: "https://www.ag-grid.com/archive/36.2.0/react-data-grid/pdf-export-hyperlinks/"
    - title: "Master Detail"
      url: "https://www.ag-grid.com/archive/36.2.0/react-data-grid/pdf-export-master-detail/"
    - title: "Page Setup"
      url: "https://www.ag-grid.com/archive/36.2.0/react-data-grid/pdf-export-page-setup/"
    - title: "API Reference"
      url: "https://www.ag-grid.com/archive/36.2.0/react-data-grid/pdf-export-api/"
llms: "https://www.ag-grid.com/archive/36.2.0/llms.txt"
---

# PDF Export - Watermarks

PDF watermarks display translucent status text, such as **DRAFT** or **CONFIDENTIAL**, across the exported page content. Watermarks do not affect table measurement or pagination.

## Adding Watermarks

Set `watermark.text` in the PDF export parameters. The default watermark is centred on every page, rotated by `-45` degrees, and rendered with low opacity.

```ts
const defaultPdfExportParams = {
    watermark: {
        text: 'DRAFT',
    },
};
```

The following example exports a multi-page report with a customised watermark:

- `opacity` controls transparency from `0` to `1`.
- `rotation` controls the text angle in degrees.
- `pages` can be `'all'`, `'first'`, `'odd'`, or `'even'`.
- `style` controls the text colour, font, size, weight, and other supported text properties.

```ts
const defaultPdfExportParams = {
    watermark: {
        text: 'DRAFT',
        opacity: 0.12,
        rotation: -45,
        pages: 'all',
        style: {
            color: '#6b7280',
            fontSize: 92,
            fontWeight: 'bold',
        },
    },
};
```

#### PDF Text Watermark

```tsx
"use client";

import React, {
  useCallback,
  useMemo,
  useRef,
  useState,
  StrictMode,
} from "react";
import { createRoot } from "react-dom/client";
import { AgGridReact, AgGridProvider } from "ag-grid-react";
import "./styles.css";
import {
  ClientSideRowModelModule,
  ColDef,
  ColGroupDef,
  GridApi,
  GridOptions,
  ModuleRegistry,
  PdfExportParams,
  enableDevValidations,
} from "ag-grid-community";
import { ContextMenuModule, PdfExportModule } from "ag-grid-enterprise";

if (process.env.NODE_ENV !== "production") {
  enableDevValidations();
}

const modules = [ClientSideRowModelModule, PdfExportModule, ContextMenuModule];

interface ReportRow {
  item: string;
  owner: string;
  status: string;
}

const GridExample = () => {
  const gridRef = useRef<AgGridReact<ReportRow>>(null);
  const containerStyle = useMemo(() => ({ width: "100%", height: "100%" }), []);
  const gridStyle = useMemo(() => ({ height: "100%", width: "100%" }), []);
  const [rowData, setRowData] = useState<ReportRow[]>(
    Array.from({ length: 60 }, (_, index) => ({
      item: `Work item ${index + 1}`,
      owner: ["Amelia", "Mateo", "Hana"][index % 3],
      status: index % 4 === 0 ? "In review" : "Complete",
    })),
  );
  const [columnDefs, setColumnDefs] = useState<ColDef[]>([
    { field: "item", flex: 1 },
    { field: "owner", flex: 1 },
    { field: "status", flex: 1 },
  ]);
  const defaultPdfExportParams = useMemo<PdfExportParams>(() => {
    return {
      page: {
        orientation: "portrait",
      },
      watermark: {
        text: "DRAFT",
        opacity: 0.12,
        rotation: -45,
        pages: "all",
        style: {
          color: "#6b7280",
          fontSize: 92,
          fontWeight: "bold",
        },
      },
    };
  }, []);

  const onBtExport = useCallback(() => {
    gridRef.current!.api.exportDataAsPdf();
  }, []);

  return (
    <AgGridProvider modules={modules}>
      <div style={containerStyle}>
        <div className="container">
          <button onClick={onBtExport}>Export PDF</button>
          <div className="grid-wrapper">
            <div style={gridStyle}>
              <AgGridReact<ReportRow>
                ref={gridRef}
                rowData={rowData}
                columnDefs={columnDefs}
                defaultPdfExportParams={defaultPdfExportParams}
              />
            </div>
          </div>
        </div>
      </div>
    </AgGridProvider>
  );
};

const root = createRoot(document.getElementById("root")!);
root.render(
  <StrictMode>
    <GridExample />
  </StrictMode>,
);
```

[Live example: PDF Text Watermark](https://www.ag-grid.com/archive/36.2.0/examples/pdf-export-watermarks/pdf-text-watermark/reactFunctionalTs/)

The watermark is marked as a PDF artefact, so assistive technologies do not announce it as document content on every page.

## Known Limitations

- Watermarks support text only. Image watermarks are not supported.
- One watermark configuration can be applied to an export.

## API

### Export Options

See below the functions on the `PdfExportParams` interface to customise exported grid values.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `watermark` | `PdfWatermark` |  |  |  |

### PdfWatermark

Properties available on the `PdfWatermark` interface.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `text` | `string` |  |  |  |
| `opacity` | `number` |  |  |  |
| `rotation` | `number` |  |  |  |
| `pages` | `PdfWatermarkPageSelection` |  |  |  |
| `style` | `PdfTextStyle` |  |  |  |
