# 印刷

- Human documentation: [https://docs.univer.ai/ja-JP/guides/slides/features/print](https://docs.univer.ai/ja-JP/guides/slides/features/print)

- Agent Markdown: [https://docs.univer.ai/ja-JP/guides/slides/features/print.md](https://docs.univer.ai/ja-JP/guides/slides/features/print.md)

- Requested language: `ja-JP`

- Content language: `ja-JP`

- Documentation version: `1.2.0`

- Source: [slides/features/print.ja-JP.mdx](https://github.com/dream-num/documentation/blob/dev/content/guides/slides/features/print.ja-JP.mdx)

---

#### Package metadata

```json
{
  "mobile": true,
  "preset": [],
  "plugins": [
    {
      "client": "@univerjs-pro/slides-print",
      "locale": "@univerjs-pro/slides-print/locale/ja-JP",
      "facade": "@univerjs-pro/slides-print/facade"
    }
  ],
  "license": true,
  "server": false
}
```

## 印刷機能の登録

Slides エディターで印刷プレビュー、または印刷関連の facade API が必要な場合は、`@univerjs-pro/slides-print` を使用します。この package は `@univerjs-pro/slides-print/locale/*` も提供し、追加の CSS import は不要です。

```ts
import { UniverSlidesPrintPlugin } from '@univerjs-pro/slides-print'
import SlidesPrintEnUS from '@univerjs-pro/slides-print/locale/en-US'
import '@univerjs-pro/slides-print/facade'

univer.registerPlugin(UniverSlidesPrintPlugin)
```

## モバイル対応

まず[モバイルエディター](https://docs.univer.ai/ja-JP/guides/slides/getting-started/installation.md#mobile-support)を設定します。このページのプラグインモードの初期化コードで、以下のデスクトップ登録を同じパッケージのモバイル版に置き換え、**文書を開く前に**完了してください。モデル、スタイル、言語ファイル、Facade は維持し、両方を同時に登録しないでください。

| パッケージ                        | デスクトップの登録                 | モバイルの登録                         |
| ---------------------------- | ------------------------- | ------------------------------- |
| `@univerjs-pro/slides-print` | `UniverSlidesPrintPlugin` | `UniverSlidesPrintMobilePlugin` |

## 依存関係

印刷プラグインは、コアの Slides モデルの後に登録します：

```ts
univer.registerPlugin(UniverSlidesPlugin)
univer.registerPlugin(UniverSlidesUIPlugin)
univer.registerPlugin(UniverSlidesPrintPlugin)
```

ブラウザーエディターでは、[クイックスタート](https://docs.univer.ai/ja-JP/guides/slides/getting-started/quickstart.md) に示されている render engine、UI、Docs、Drawing、license プラグインも登録したままにしてください。

## Facade API

facade エントリをインポートすると、`FUniver` に `printSlidesAsync` メソッドが追加されます：

```ts
import '@univerjs-pro/slides-print/facade'
```

現在アクティブなプレゼンテーションのすべてのスライドを印刷します：

```ts
const univerAPI = FUniver.newAPI(univer)

await univerAPI.printSlidesAsync()
```

1 から始まるページ範囲を指定して印刷することもできます：

```ts
await univerAPI.printSlidesAsync({
  range: [
    { from: 1, to: 3 },
    { from: 6, to: 6 },
  ],
})
```

`range` は両端を含むページ範囲です。省略した場合はすべてのスライドを印刷します。重複する範囲は重複排除され、元のスライド順で印刷されます。deck の範囲を超える指定は利用可能なページに切り詰められ、開始と終了が逆の無効な範囲は無視されます。

## 注意事項

印刷出力は、現在の slide snapshot、ページサイズ、drawing 要素、および任意の table/chart 要素に依存します。deck に table や chart が含まれる可能性がある場合は、印刷前に対応する機能プラグインを登録してください。

## レイアウトとプレビュー

```ts
univerAPI.openSlidesPrintDialog({
  layout: univerAPI.Enum.SlidePrintLayoutType.Handout,
  slidesPerPage: 6,
  handoutOrder: univerAPI.Enum.SlidePrintHandoutOrder.Horizontal,
  frameSlides: true,
  showSlideNumber: true,
})
```

フルページ、配布資料、ノートページの各レイアウトと、用紙・向き・余白設定に対応します。

配布資料は 1 ページあたり 1、2、3、4、6、9 枚に対応します。ノートページは現在のスライドの発表者ノートを使用します。
