# PDFを結合 — 分割もページの並べ替えも

サーバーを一往復せずに、ページを入れ替える。

> PDFをまとめる、1つを複数に分ける、ページをドラッグして好きな順にします。すべてお使いのブラウザの中で行われます。アップロードもアカウントも不要で、仕上がったファイルは渡す前にもう一度開いてページ数を数え直します。

これはhttps://abox.tools/ja/merge-pdf/にあるブラウザー用の対話型ツールです。ファイルはそのブラウザーを実行する端末上で処理します。意図した共有や任意の通信機能はページ内で説明します。以下は文章による説明です。利用するにはアドレスを開いてください。

## 書類は**ブラウザー内で処理**されます。処理のためのアップロードはありません。

選んだ書類は、このアドレスから配信されたコードによって、この端末のメモリの中で開かれ、分解され、書き戻されます。ここにはアップロードを起こせるものがなく、このページの向こう側にそれを受け取るサーバーもありません。

- ✗ アップロードなし
- ✗ 登録なし
- ✓ オフラインで動作
- ✓ ソース公開
- ✓ ファイルは端末から出ない

## PDFを結合・分割・並べ替えする手順

1. **PDFを選びます。** 選択欄にドラッグするか、手で選んでください。あとから追加しても構いません。各ファイルのページは、いまの並びの末尾に付きます。2つのフォルダを別々のタイミングで結合できるのはそのためです。読み込むのはブラウザで、ディスクから直接です。
2. **ページを好きな順に並べます。** つまみを持ってページをドラッグするか、矢印で少しずつ動かします。横向きにスキャンされたページを回す、1枚抜く、あるいは欄に`1-3, 8, 12-`と打てば、まとまった範囲を一度に残す・外す・回すことができます。番号は動かすたびに振り直されるので、見えているものがそのまま仕上がりです。
3. **1つの書類にするか、複数にするかを決めます。** たいていは1つです。残りは切り方です。何ページごとか、指定したページ番号で、1ページに1ファイル、あるいは元のファイルごとに戻す。複数になる場合は1つのZIPでまとめて渡されるので、保存の確認は50回ではなく1回で済みます。
4. **組み立て、検証したという行を読みます。** 書類が書き終わると、そのそれぞれをこのページの同じ読み取り側がもう一度開き、ページ数を数えます。それが指定した内容と食い違えば、その実行は失敗として報告され、ダウンロードは提示されません。

## 詳しい解説

[PDFのページを結合・分割・並べ替えする方法](https://abox.tools/ja/guides/merge-and-split-pdf-files/): 複数のPDFをまとめ、1つを何本かに切り分け、ページを動かします。並べ替えて何が残り、どの道具にも運べないものは何か、そしてなぜ書類をどこかへ送らずに済むのか。

## 箱の中のほかのツール

- [PDF圧縮ツール](https://abox.tools/ja/compress-pdf/): どこにも送らずに、書類を軽くします。
- [PDF保護解除ツール](https://abox.tools/ja/unlock-pdf/): 権限制限と閲覧パスワードは別のものです。このページでPDFの保護の種類を確認できます。
- [PDF保護ツール](https://abox.tools/ja/protect-pdf/): 保護するために、先にウェブサイトへ渡す必要はありません。
- [PDF透かしツール](https://abox.tools/ja/watermark-pdf/): 送り先を記したスキャンなら、別の場所で使われたことが見えます。

## よくある質問

### PDFはどこかにアップロードされますか？

いいえ。読み込みも、複製も、書き出しも、お使いのブラウザがお手元のハードウェアで行います。この道具にサーバー側はなく、ページの`Content-Security-Policy`には接続してよいアドレスがすべて書かれていて、そのどれもこのサイトのものではありません。この道具には、任意のネットワーク機能すら存在しません。

### 何個まで結合できますか。ファイルの大きさに上限はありますか？

道具に書かれた上限はありません。上限はお使いの端末です。書類は作業のあいだメモリに置かれるので、ノートパソコンなら数百メガバイトは難なく結合し、それより上のどこかで苦しくなります。課金も、速度制限も、透かしも、順番待ちもありません。それを行う相手が向こう側にいないからです。

### 結合や分割で画質は落ちますか？

落ちません。ページ上のものは再符号化も、再描画も、再圧縮もされません。各ページの内容ストリームと、それが参照するフォント・画像・ベクター図形はすべてバイト単位で複製されます。文字は選択も検索もできるままで、写真は同じ写真です。変わるのはページの順番と、その周りの構造だけです。

### しおりとリンクはどうなりますか？

どちらも捨てるのではなく、組み直します。ページが出力に残っているしおりは、そのページの移動先を指します。ページを外したしおりは消えますが、下に残った項目があれば見出しとして残ります。複数のファイルを結合すると、各ファイルのしおりはそのファイル名の見出しの下に入ります。ページ間のリンクも同じようにたどられ、WordやLaTeXが書く名前付きの行き先も含みます。行き先が一緒に来なかったリンクは、読み手を誤った場所へ送るくらいなら、何も起こらないまま残されます。ウェブアドレスへのリンクはそのままです。

### 引き継がれないものは何ですか？

4つあり、道具はそれを小さな注記ではなく結果の画面で伝えます。スクリーンリーダーが使うタグ付きの読み上げ順のツリー、ページラベル（「iii, iv, 1, 2」といった番号付け）、埋め込まれた添付ファイル、そして「ページへ移動」でも「ウェブアドレスを開く」でもないすべての動作、書類のJavaScriptを含みます。はじめの2つは、ページが動いた時点で存在しなくなった順序を記述したものです。最後のものは、新しいファイルへ持ち込んでほしいと頼まれていないものです。書類のタグ付けが大事なら、元のファイルも残しておいてください。

### 記入済みのフォームは残りますか？

残ります。フォームの項目と入力された内容はページと一緒に来て、新しい書類もフォームとして登録されるので、閲覧ソフトはそれをフォームとして扱います。結合するときに知っておきたいことが1つあります。同じ名前の項目は、どの閲覧ソフトにとっても1つの項目です。同じフォームの写しを2つ結合すると、片方のページで欄を埋めればもう片方も埋まります。道具はその場合に気づいて知らせます。

### パスワード付きのPDFは開けますか？

いいえ。これは意図した動作です。暗号化された書類は、その旨を伝えて受け付けません。パスワードが空の場合も同じで、多くのスキャナーやコピー機はその形で保存します。ファイルの保護を外すのはページを動かすのとは別の仕事であり、黙ってそれをする道具は、頼まれてもいないことをしていることになります。

### ページのプレビューがないのはなぜですか？

ページを描くには、フォント、シェーディング、透明グループ、描画モードまで含む完全なPDFレンダラーが要るからです。サムネイルのために1メガバイト以上のエンジンを取ってきて走らせることになります。代わりにタイルが見せているのは、並べ替えが実際に扱う情報です。ページ番号、紙の形と大きさ、書き出しに使われる回転、そしてどのファイルから来たか。縦のページの束に横向きのスキャンが1枚混じっていれば、これでも一目でわかります。

### 仕上がったファイルはどこでも開けますか？

開けます。出力はPDF 1.5、または渡されたファイルのいずれかが必要とした最も高い版で書かれます。1.5は2003年以降に出たすべての閲覧ソフトが理解します。道具はそれをお手元でも実際に確かめます。仕上がったファイルをもう一度開き、ページツリーをたどってページ数を数えてから、はじめてお渡しします。

### 無料ですか。アカウントは必要ですか？

無料です。アカウントも、ログインも、試用期間もなく、ファイルサイズの制限も端末のメモリが許す範囲のほかにはありません。このサイトには広告があり、それが費用を賄っています。広告に書類の情報が渡されることはありません。

### オフラインでも動きますか？

動きます。ページを一度読み込んでから通信を切っても、そのまま使えます。何もアップロードされていないことを示す、いちばん簡単な方法でもあります。結合のために書類をどこかへ送っている道具なら、線を抜いた瞬間に止まるからです。

## この主張を確かめる方法

- **処理はこのブラウザー内で行います。** 入力と結果はブラウザー内で処理し、処理コードはそれらを処理用にアップロードしません。Content-Security-Policyは資源と接続先を制限しますが、許可済みの相手はリクエストを受け取れます。内容は検査せず、何も送られないことを単独で証明しません。具体的な操作の要求とソースを比較するか、切断中にローカル操作を完了してください。
- **結合こそ、いちばんアップロードしたくない作業です。** 人がまとめる書類は、たいていどこかから来たものです。契約書とその署名ページ、パスポートの写しと取引明細、診断書と申請書。オンラインの結合サービスは、それらを一か所に、すでに並べ終えた状態で手にします。この道具が持っているのはブラウザの中の1ページだけで、もう半分がありません。
- **フォーマットの全体がこのリポジトリにあります。** PDFはオブジェクトの一覧と、それぞれがどこから始まるかの表です。`src/objects.js`がその文法を読み、`src/reader.js`が表をたどり、`src/assemble.js`が書類のあいだでページを複製し、`src/writer.js`が結果を書き出します。4つのどれも、リクエストを出せるものは読み込んでいません。ライブラリを取りに行くことはなく、サーバーで描画されるものもありません。
- **暗号化されたファイルは、開かずにお断りします。** パスワードのかかったPDFは受け付けません。スキャナーが空のパスワードで作る、技術的には開けてしまう種類のものも同じです。書類の保護を外すのは、ページを入れ替えるのとは別の仕事です。黙ってそれをするのは、道具が代わりにやることとしては驚きが大きすぎます。
- **仕上がったファイルは、どこで作られたかを語りません。** 作成ソフトの行も、作成日も、道具の名前もありません。組版ソフトが置いていくXMPパケットや独自ブロックも運びません。それらは以前あった書類のものであって、いま作った書類のものではないからです。ページの中身そのものはそのまま複製されます。この道具はページを動かすだけで、そこに書かれているものは書き換えません。
- **「ページへ移動」以外の動作は複製しません。** PDFには、開いたときに走る命令を入れられます。これを再生せよ、このフォームをあのアドレスへ送れ、このJavaScriptを実行せよ。この道具を通ったページは、他のページやウェブアドレスへのリンクを残し、それ以外を失います。他人のページを並べ替えることは、その書類のスクリプトを新しいファイルへ持ち込む理由にはなりません。
- **Googleが読み込むものと、渡されないもの。** 広告と計測のスクリプトはGoogleから来ています。そのどちらにも、書類に関する情報は渡されません。ファイルも、ページも、名前も、サイズも、ページ数もです。PDFを読み、複製し、書き出すコードはすべてこのオリジンから配信され、リポジトリに載っています。
- **寄付ボタンが読み込むものと、渡されないもの。** ヘッダーの「Buy me a coffee」ボタンは、cdnjs.buymeacoffee.comのスクリプトが描き、書体はGoogle Fontsから読み込みます。それはリンク以上のものではありません。訪問を報告することもなく、あなたや書類について渡されるものもありません。押さないかぎり何も起こらず、押した先は他人のサイトです。
- **オフラインで動きます。** 通信を切っても、このページのすべてがそのまま動きます。これがいちばん単純な証明です。結合のために書類を送っている道具なら、そこで止まります。

**自分で確かめてください。**以上のどれも、鵜呑みにする必要はありません。このページは、リポジトリにあるテンプレートと設定から、誰でも読んで実行できるビルドスクリプトが生成しています。その結果は`dist`ブランチに置いてあるので、配信されているものと、ソースをビルドした結果とを差分で比べられます。 https://github.com/A-Box-of-Tools/website

まず読むとよいのは、Content-Security-Policyについては`config/site.toml`、そして複製の全体、つまりページを1つの書類から持ち上げて別の書類に置く手順と、意図して置いていくものについては`src/assemble.js`です。これはネットワークに触れられず、隣にある読み取り側も書き出し側も同じです。
