# PDF圧縮｜PDFのサイズを小さくする

どこにも送らずに、書類を軽くします。

> PDFをアップロードせずに小さくします。読み込みも再圧縮も書き直しも、お使いのブラウザが行います。手をつける前に、そのPDFの容量が実際どこにあるのかを見せます。

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

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

書類を開き、分解し、書き戻すまでは、このアドレスから配信されたコードがこの端末のメモリ上で行います。ここにアップロードを行える部分はありません。このページの向こう側に、それを受け取るサーバーもありません。

- ✗ アップロードなし
- ✗ 登録なし
- ✓ オフラインで動作
- ✓ ソース公開
- ✓ ファイルは端末に残ります

## PDFを小さくする手順

1. **PDFを選びます。** 選択欄にドロップするか、手で選んでください。ブラウザがディスクから直接読み出します。その間に何かがどこかへ送られることはありません。
2. **容量がどこにあるのかを見ます。** 内訳こそが第2段階の目的です。棒グラフの大半が画像なら、このツールには手をつける余地があります。大半がフォントとページの中身なら、そう表示され、正直な削減幅は数パーセントにとどまります。1分を費やす前に知っておけるほうがいいはずです。
3. **どこまで絞るかを指定します。** 用意した設定は曖昧な段階ではなく、解像度です。画面で読むなら96DPI、メールに添付するなら130、まだ印刷する可能性があるなら220。どれも、その画像がページ上で実際どれだけの大きさに描かれているかと突き合わせて判断するので、サムネイルとして置かれた写真が全面スキャンと同じ扱いになることはありません。
4. **圧縮して、確認済みと書かれた行を見ます。** 書き直しが終わると、できあがったファイルをこのページの同じリーダーでもう一度開き、ページ数を数えます。それが元と食い違えば、その実行は失敗として報告され、ダウンロードは提示されません。

## 詳しい解説

[PDFを小さくする方法と、小さくならないものがある理由](https://abox.tools/ja/guides/make-a-pdf-smaller/): PDFの容量が実際どこにあるのか、スキャンが80%縮んで契約書がほとんど動かない理由、ここでいうDPIとは何か、そして圧縮ツールが書類に決してすべきでないこと。

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

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

## よくある質問

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

されません。読み込みも再圧縮も書き出しも、お使いのブラウザが手元のハードウェア上で行います。このツールにサーバー側は存在しません。ページの`Content-Security-Policy`には接続してよいアドレスがすべて挙がっていますが、そのどれも当サイトのものではありません。任意のネットワーク機能すら一切ありません。

### PDFはどれくらい小さくなりますか？

中身によって完全に変わります。だからこのツールは、何かを圧縮する前に測って見せます。スキャンした書類はほぼ写真なので、60〜90%小さくなるのが普通です。契約書や論文は文字とベクター図形と埋め込みフォントで、どれも作った側がすでに圧縮しています。そこでの削減はたいてい数パーセントで、ファイルを詰め直し、もう参照されていないものを落とした分です。ファイルを見もせずに一定の削減率を約束する道具は、当て推量をしています。

### PDFを圧縮すると画質は落ちますか？

中の画像は再エンコードされるので、その分は落ちます。それ以外には手をつけません。文字は文字のままで、選択も検索もでき、フォントは丸ごと保たれ、ベクター図形はそのまま複製されます。無駄に画像を悪くすることも拒みます。再エンコードしても元より小さくならなかった場合は、元のバイト列がそのまま書類に戻ります。

### ここでいうDPIとは何で、なぜ訊かれるのですか？

PDFは各画像がページ上でどれだけの大きさに描かれるかを記録しているので、実効解像度を計算できます。4000ピクセルのスキャンを8インチの幅に置けば、1インチあたり500ピクセルを抱えていることになります。画面ではまったく、紙でもほとんど使い道のない量なので、指定した設定を超える分から先に捨てます。誰にも見えない画質に費用を払っているからです。小さく置かれたロゴが全面スキャンと同じ扱いにならないのも、この計測のおかげです。

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

開けません。これは意図したものです。暗号化された書類は、その旨のメッセージを出して断ります。パスワードが空の場合でも同じで、多くのスキャナーや複合機はその形で保存します。ファイルの保護を外すのは圧縮とは別の仕事です。黙ってそれをする道具は、頼まれていないことをしていることになります。

### 圧縮できないPDFはありますか？

中の一部の画像については、あります。JPEG 2000、JBIG2、ファックス方式（CCITT）の画像はどのブラウザにもデコーダーがないので、手をつけずに通し、その旨を表示します。後ろの2つは白黒2値のコーデックで、たいていすでに最小に近い大きさです。CMYKの画像も触りません。再エンコードすると、印刷機が出す色が変わってしまう恐れがあるからです。飛ばしたものはすべて、理由とともに結果に表示されます。

### 圧縮したファイルはどこでも開けますか？

開けます。出力はPDF 1.5で書きます。2003年以降に出たリーダーならどれも理解できる版です。そしてこのツールは、それを手元の端末上で証明します。できあがったファイルをもう一度開き、ページ数を数えてから渡します。フォーム、リンク、しおり、アクセシビリティの構造、埋め込まれた添付ファイルはそのまま引き継ぎます。残していくのは、書類のどこからも参照されなくなった素材だけです。

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

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

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

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

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

- **処理はこのブラウザー内で行います。** 入力と結果はブラウザー内で処理し、処理コードはそれらを処理用にアップロードしません。Content-Security-Policyは資源と接続先を制限しますが、許可済みの相手はリクエストを受け取れます。内容は検査せず、何も送られないことを単独で証明しません。具体的な操作の要求とソースを比較するか、切断中にローカル操作を完了してください。
- **形式の扱いはすべてこのリポジトリの中にあります。** PDFとは、オブジェクトの並びと、それぞれがどこから始まるかの表です。`src/shared/pdf-objects.js`がその構文を読み、`src/shared/pdf-reader.js`が表をたどり、`src/shared/pdf-writer.js`が新しいものを書きます。この3つはどれも、リクエストを出せるものを読み込んでいません。ライブラリを取りに行くことも、サーバーで描画することもありません。
- **暗号化されたファイルは、開かずに断ります。** パスワードのかかったPDFは受け付けません。スキャナーが空のパスワードで作る、技術的には開けてしまう種類のものも同じです。書類の保護を外すのは小さくするのとは別の仕事です。それを黙って代行する道具は、驚かれても仕方がありません。
- **足すのではなく、外します。** できあがったファイルには、作成日時も、生成元の記録も、作ったツールの名前も入りません。チェックを入れれば、レイアウトソフトが残していくXMPパケットや非公開のブロックも落とします。EXIFツールと同じ理屈を、別の入れ物に当てはめたものです。
- **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`、そして読み込みと書き直しのすべてについては`src/shared/pdf-reader.js`と`src/shared/pdf-writer.js`です。どちらもネットワークには手が届きません。
