> ## Documentation Index
> Fetch the complete documentation index at: https://docs.evidence.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Designing Reports for PDF

> Design reports that look right as PDFs.

For many readers, the PDF is the report. Board packs, investor and client reports, and [scheduled sends](/features/scheduled-reports.md) all reach people as a PDF. Evidence includes components and options for developing reports that are effective both on the web and in PDF.

## Export Your First PDF

> [!NOTE]
>
> **Studio only** — part of [Evidence Studio](/index.md#evidence-studio), our hosted platform.

Open the page menu and choose **Download PDF**, or press `Cmd+P` / `Ctrl+P` on a published page.

![The PDF Options dialog, with a preview on the left and the settings on the right](https://mintcdn.com/evidence/jS4ELdu9feQGNyqe/images/guides/perfect-pdfs/pdf-options-dialog.png?fit=max\&auto=format\&n=jS4ELdu9feQGNyqe\&q=85\&s=defb3f494710ccce745ef169db296fbf)

| Setting | What it does | Default |
| - | - | - |
| **Orientation** | Portrait or landscape A4 | Landscape when `page_width: full`; otherwise Portrait |
| **Color scheme** | Light or dark | Your current mode |
| **Show cards** | Prints content on cards, as on screen | The page's `cards` setting |
| **Use page colors** | Prints your page background instead of white | Off |
| **Margins (mm)** | Space around each page | 20 mm |
| **Contents** | Untick a heading to leave out that section | All sections |

Use landscape for wide tables and charts.

![The same page exported in portrait and landscape](https://mintcdn.com/evidence/jS4ELdu9feQGNyqe/images/guides/perfect-pdfs/pdf-portrait-vs-landscape.png?fit=max\&auto=format\&n=jS4ELdu9feQGNyqe\&q=85\&s=ee4ab3b4295d377715d4f39102a07170)

![The same page with Show cards off and on](https://mintcdn.com/evidence/jS4ELdu9feQGNyqe/images/guides/perfect-pdfs/pdf-cards-off-vs-on.png?fit=max\&auto=format\&n=jS4ELdu9feQGNyqe\&q=85\&s=3cbd46ff52c26227af4adffe39ca2c04)

Light mode is usually best for printed PDFs.

## Print Techniques

### Keep Content on the Same Page

Wrap related content in [print\_group](/components/print_group.md) so it stays together — a heading with its chart, or a chart with its table.

```liquid theme={null}
{% print_group %}
### Quarterly Revenue
{% bar_chart data="quarterly_sales" x="quarter" y="sum(revenue) as 'Revenue'" /%}
{% /print_group %}
```

Use `print_group hide=true` to leave a block out of the PDF entirely.

### Start a New Page

Add [page\_break](/components/page_break.md) where the next page should begin.

```liquid theme={null}
{% page_break /%}

## Details
```

### Hide Filters and Controls

Wrap inputs in [hidden\_in\_print](/components/hidden_in_print.md). Otherwise they print as unusable controls.

```liquid theme={null}
{% hidden_in_print %}
{% range_calendar id="date_range" title="Order date" /%}
{% /hidden_in_print %}
```

### Add Content for PDF Readers

Use [only\_in\_print](/components/only_in_print.md) for text that only PDF readers need.

```liquid theme={null}
{% only_in_print %}
Prepared for the leadership team. All figures in USD.
{% /only_in_print %}
```

### Adapt Filters for Print

Filters aren't interactive in print, but they affect the content that's included. Hiding filters and replacing them with a sentence describing the filter state can help a PDF remain clear.

```liquid theme={null}
{% hidden_in_print %}
{% dropdown
	id="category"
	title="Category"
	data="products"
	value_column="category"
	multiple=true
	select_first=true
/%}
{% /hidden_in_print %}

{% only_in_print %}
Showing **{{category}}**.
{% /only_in_print %}
```

A multi-select prints as a comma-separated list.

To show every filter value in one PDF instead of a single chart with an input, use a [repeat](/components/repeat.md). On screen, readers see the interactive dropdown and chart. In the PDF, they see one chart per value.

```liquid theme={null}
{% hidden_in_print %}
{% dropdown id="department" title="Department" data="sales" value_column="department" /%}
{% line_chart data="sales" x="month" y="sum(revenue) as 'Revenue'" filters=["department"] /%}
{% /hidden_in_print %}

{% only_in_print %}
{% repeat id="dept" data="sales" column="department" %}
{% line_chart data="sales" x="month" y="sum(revenue) as 'Revenue'" title="{{dept}}" filters=["dept"] /%}
{% /repeat %}
{% /only_in_print %}
```

## Tabs

[Tabs](/components/tabs.md) print every tab in sequence, each with its title as a heading.

```liquid theme={null}
{% tabs %}
	{% tab title="Revenue" %}
		{% bar_chart data="orders" x="product" y="sum(amount) as 'Amount'" /%}
	{% /tab %}
	{% tab title="Orders" %}
		{% table data="orders" /%}
	{% /tab %}
{% /tabs %}
```

## Print Components

| Component | In the PDF |
| - | - |
| [Page Break](/components/page_break.md) | Starts a new page |
| [Print Group](/components/print_group.md) | Keeps contents together. `hide=true` leaves it out; `print_only=true` shows it only in print |
| [Hidden in Print](/components/hidden_in_print.md) | Leaves contents out |
| [Only in Print](/components/only_in_print.md) | Shows contents only in print |
| [Repeat](/components/repeat.md) | Prints contents once per value of a column |
| [Tabs](/components/tabs.md) | Prints every tab with its title as a heading |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.