---
alias: "fc.button.print.download"
aliases:
  - fc.button.print.download
category: action
module: Core
---
# fc.button.print.download

File download button that fetches authenticated HTML documents from Fluent APIs and presents them for download, print preview, or new-tab viewing. Used for pack slips and other API-generated HTML documents that require authentication.

## When to Use
- Downloading pack slips or invoices generated by Fluent APIs
- Any page action that needs to fetch and present an authenticated HTML endpoint
- Warehouse/fulfilment pages needing direct document download

## Key Props
| Prop | Type | Required | What it controls |
|------|------|----------|------------------|
| `label` | string | **Yes** | Button label text (supports i18n keys) |
| `href` | string | **Yes** | Relative path of the Fluent API endpoint to download |
| `filename` | string | **Yes** | Download filename. Supports template strings (e.g., appending wave ID to avoid clashes). |
| `behavior` | string | No | How the document is presented. Default: `"preview"`. Options: `"print"` (browser print preview), `"preview"` (download as PDF), `"newTab"` (open PDF in new tab). |

## Data Binding
The `href` prop points to a relative Fluent API endpoint. The component handles authentication automatically. The `filename` prop supports template strings to generate dynamic filenames based on page data context.

## Descendants
No.

## Gotchas
- Unlike `fc.button.print.inline`, this variant downloads from a Fluent API endpoint rather than rendering from an HTML setting template.
- The `href` must be a relative path -- the component prepends the Fluent API base URL.
- Use template strings in `filename` to prevent file name collisions (e.g., `"packslip-{{waveId}}.pdf"`).

## Manifest Example
```json
{
  "component": "fc.button.print.download",
  "props": {
    "label": "i18n:fc.wave.downloadPackSlip",
    "href": "/api/v4.1/wave/{{id}}/packslip",
    "filename": "packslip-{{ref}}.pdf",
    "behavior": "preview"
  }
}
```

## AI Parse Notes
- **Primary intent:** Declarative Mystique component definition for manifests.
- **Selection signals:** Match by `alias`, category, and required `Key Props`.
- **Assembly hints:** Combine with compatible parent/child components listed in `Composition Patterns`.
- **Safety checks:** Validate required props and data bindings before manifest generation.
