# アクションの概要

アクションとは何か、機能別にまとめたカタログ、そしてあるアクションの出力が次のアクションの入力になる仕組みについて説明します。

**アクション**とは、単一のエンドポイントとして公開される、純粋で単機能の PDF 変換処理です。ドキュメントを送信すると、アクションはそれに対して結合、透かし付与、暗号化、回転、分割のいずれか一つだけの処理を行い、結果を返します。アクションは状態を保持せず、コンテキストも共有しません。それぞれの呼び出しは独立しています。この一貫性があるからこそ、アクションをパイプラインとしてつなぎ合わせることができます。

## アクションとは

すべてのアクションは `/v1/<action>` への `POST` です。ここで `<action>` には下表に示すルート名が入ります。いずれのアクションも同じ[リクエストとレスポンスの規約](/docs/api/requests-and-responses)に従い、入力 PDF を `file` フィールドに含めた `multipart/form-data` 本文を `X-API-Key` ヘッダーで認証して送信します。ほとんどのアクションは単一の `application/pdf` を返しますが、分割系のアクションは複数のドキュメントを返します。

## カタログ

17個のアクションを、機能別にまとめています。それぞれから詳細なリファレンスにリンクしています。

### 結合と分割

| アクション | ルート | 内容 |
| --- | --- | --- |
| [結合する](/docs/api/merge-pdf-documents) | `/v1/merge_documents` | 順序付けられた PDF の配列を1つのドキュメントに結合します。 |
| [ページ数で分割する](/docs/api/split-pdf-by-page-count) | `/v1/split_by_page_count` | PDF を固定のページ数ごとに連続したパートへ分割します。 |
| [指定したページで分割する](/docs/api/split-pdf-at-page) | `/v1/split_at_page` | PDF をある分割位置で2つのパートに分割します。 |
| [ファイルサイズで分割する](/docs/api/split-pdf-by-file-size) | `/v1/split_by_size` | PDF を、指定したバイト数以下になるパートへ分割します。 |
| [ページグループで分割する](/docs/api/split-pdf-into-page-groups) | `/v1/split_by_groups` | PDF を、指定したページのグループへ分割します。 |

4つの分割系アクションは、いずれも複数のドキュメントを生成します。パッケージ形式は `Accept` ヘッダーで選択します。詳細は[レスポンス形式](/docs/api/response-formats)を参照してください。

### 透かし

| アクション | ルート | 内容 |
| --- | --- | --- |
| [テキストの透かしを追加する](/docs/api/add-text-watermark-to-pdf) | `/v1/add_text_watermark` | 最大3行のスタイル付きテキストをページ全体に付与します。 |
| [画像の透かしを追加する](/docs/api/add-image-watermark-to-pdf) | `/v1/add_image_watermark` | ロゴなどの PNG または JPEG 画像をページ全体に付与します。 |

### パスワードとセキュリティ

| アクション | ルート | 内容 |
| --- | --- | --- |
| [パスワードを追加する](/docs/api/add-password-to-pdf) | `/v1/add_password` | 開封用および/または権限用のパスワードでドキュメントを暗号化します。 |
| [パスワードを削除する](/docs/api/remove-password-from-pdf) | `/v1/remove_password` | パスワードが分かっているドキュメントを復号します。 |
| [制限を追加する](/docs/api/add-restrictions-to-pdf) | `/v1/add_restrictions` | 印刷・コピー・編集に関する権限フラグを設定します。 |
| [制限を削除する](/docs/api/remove-restrictions-from-pdf) | `/v1/remove_restrictions` | ドキュメントの権限フラグをリセットします。 |
| [署名を削除する](/docs/api/remove-signatures-from-pdf) | `/v1/remove_signatures` | デジタル署名を削除し、ドキュメントを編集できるようにします。 |

### ページ

| アクション | ルート | 内容 |
| --- | --- | --- |
| [ページを抽出する](/docs/api/extract-pages-from-pdf) | `/v1/extract_pages` | 選択したページを残し、それ以外を除外します。 |
| [ページを削除する](/docs/api/remove-pages-from-pdf) | `/v1/remove_pages` | 選択したページを除外し、それ以外を残します。 |
| [ページを回転する](/docs/api/rotate-pages-in-pdf) | `/v1/rotate_pages` | 選択したページを90度単位で回転させます。 |
| [ページを反転する](/docs/api/reverse-pages-of-pdf) | `/v1/reverse_pages` | ページの順序を前後反転させます。 |
| [ページを並べ替える](/docs/api/reorder-pages-of-pdf) | `/v1/reorder_pages` | 呼び出し側が指定した順序にページを並べ替えます。 |

## アクションの組み合わせ方

すべてのアクションは PDF を受け取り、（単一出力のアクションの場合は）PDF を返すため、あるアクションの出力はそのまま次のアクションの有効な入力になります。呼び出しの間には何も保存されないため、バイト列をパイプでつなぐようにして組み合わせます。つまり、1つのリクエストのレスポンスをメモリ上に保持し、それを次のリクエストの `file` として送信します。

典型的なパイプラインは、次のように左から右へ読みます：

```text
merge_documents  →  add_text_watermark  →  add_password
   (many PDFs)         (one watermarked)      (one encrypted)
```

[アクションを連結する](/docs/api/chaining-actions)ガイドでは、これをディスクに一切触れずコードだけで最初から最後まで示しています。

## 単一出力と複数出力

ほとんどのアクションは単一の `application/pdf` ドキュメントを返しますが、4つの分割系アクションは複数のドキュメントを返し、コンテンツネゴシエーションによって形式（ZIP アーカイブ、JSON エンベロープ、`multipart/mixed` 本文のいずれか）を選択できます。この仕組みについては[レスポンス形式](/docs/api/response-formats)に一箇所でまとめて説明しています。
