# 打印

- Human documentation: [https://docs.univer.ai/zh-CN/guides/pdfs/features/print](https://docs.univer.ai/zh-CN/guides/pdfs/features/print)

- Agent Markdown: [https://docs.univer.ai/zh-CN/guides/pdfs/features/print.md](https://docs.univer.ai/zh-CN/guides/pdfs/features/print.md)

- Requested language: `zh-CN`

- Content language: `zh-CN`

- Documentation version: `1.0.0-rc.0`

- Source: [pdfs/features/print.zh-CN.mdx](https://github.com/dream-num/documentation/blob/dev/content/guides/pdfs/features/print.zh-CN.mdx)

---

#### Package metadata

```json
{
  "preset": [],
  "plugins": [
    {
      "client": "@univerjs-pro/pdfs-print",
      "locale": "@univerjs-pro/pdfs-print/locale/zh-CN",
      "style": "@univerjs-pro/pdfs-print/lib/index.css"
    }
  ],
  "license": true,
  "server": false
}
```

`@univerjs-pro/pdfs-print` 为当前 PDF 添加浏览器打印操作。它会物化当前页面并打开系统打印对话框。

## 注册打印

#### npm

```bash
npm install @univerjs-pro/pdfs-print
```

#### pnpm

```bash
pnpm add @univerjs-pro/pdfs-print
```

#### yarn

```bash
yarn add @univerjs-pro/pdfs-print
```

#### bun

```bash
bun add @univerjs-pro/pdfs-print
```

在浏览器配置中添加打印语言包和样式，然后在 `UniverPdfsUIPlugin` 之后注册该插件：

```ts
import { UniverPdfsPrintPlugin } from '@univerjs-pro/pdfs-print'
import PdfsPrintEnUS from '@univerjs-pro/pdfs-print/locale/en-US'

import '@univerjs-pro/pdfs-print/lib/index.css'

// Merge PdfsPrintEnUS with PdfsUIEnUS and the shared UI locales.
univer.registerPlugin(UniverPdfsPrintPlugin)
```

该插件会添加自己的菜单项和打印进度 UI。`FUniver` 上没有 PDF 打印方法；用户通过已注册的浏览器 UI 启动打印。

## 打印不是文件导出

| 工作流 | 结果                        | 是否需要服务器 | 环境           |
| --- | ------------------------- | :-----: | ------------ |
| 打印  | 打开浏览器或操作系统打印对话框           |    否    | 仅浏览器         |
| 导出  | 返回转换后的 PDF `File`，供应用控制下载 |    是    | Exchange 客户端 |

打印对话框可能提供“另存为 PDF”，但这是浏览器能力。当应用需要 PDF 文件对象、确定性的下载流程或服务器端转换时，请使用 `exportPdfByUnitIdAsync` 或 `exportPdfBySnapshotAsync`。
