# PDF 壓縮 給 PDF 瘦身

文件變小，不用送去任何地方。

> 不上傳也能給 PDF 瘦身。讀取、重新壓縮、重新寫出，全由你自己的瀏覽器完成，而且動手之前先告訴你這份檔案的體積到底壓在哪裡。

本頁是一個完全在你的瀏覽器裡執行的互動式工具，地址是 https://abox.tools/zh-TW/compress-pdf/。你交給它的任何內容都不會被上傳。下面是這個頁面用文字對該工具的全部說明；要使用它，請開啟這個地址。

## 你的文件**不會上傳**。這裡根本沒有伺服器。

文件在這臺機器上開啟、拆開、再寫回去，全程在記憶體裡，跑的是從這個地址發出的程式碼。這裡沒有任何東西能發起上傳，這個頁面的另一頭也沒有伺服器能接住上傳。

- ✗ 不上傳
- ✗ 不註冊
- ✓ 斷網能用
- ✓ 開源
- ✓ 檔案留在你的裝置上

## PDF 怎麼變小

1. **選一個 PDF。** 拖到下面的方框裡，或者點開自己挑。瀏覽器直接從你的硬碟上讀，這期間沒有東西發出去。
2. **先看清體積壓在哪裡。** 第二步的重點就是這張分佈圖。條形圖裡大半是圖片，這個工具就有東西可做；大半是字型和頁面內容，它會直說，老實說也就能省下百分之幾。這事花一分鐘之前就知道，總比之後才知道強。
3. **定個力度。** 那幾檔給的是解析度，不是「高中低」這種含糊的等級。96 DPI 給螢幕上看的，130 給要發郵件的，220 給還得列印的。每一檔都按圖片在頁面上實際畫多大來算，所以一張只當縮圖用的照片，不會被當成整頁掃描檔對待。
4. **壓完之後，看一眼那句「已核對」。** 重寫完成後，成品會被這個頁面上同一個讀取器再開啟一遍，頁數點一遍。跟原來對不上，這一次就算失敗，也不會給你下載。

## 說得更細的版本

[怎麼給 PDF 瘦身，以及有些為什麼壓不動](https://abox.tools/zh-TW/guides/make-a-pdf-smaller/): 一份 PDF 的體積到底壓在哪裡，掃描檔為什麼能小 80% 而合同幾乎紋絲不動，這裡的 DPI 是什麼意思，以及壓縮工具絕不該對你的文件做什麼。

## 工具箱裡還有

- [PDF 解鎖](https://abox.tools/zh-TW/unlock-pdf/): 大多數「加了密」的 PDF 其實根本不用密碼。這一頁會先告訴你手上是哪一種，再動它。
- [PDF 塗黑](https://abox.tools/zh-TW/redact-pdf/): 字從檔案裡刪掉，然後再搜一遍這個檔案來證明。
- [PDF 轉 CSV](https://abox.tools/zh-TW/pdf-to-csv/): 把 PDF 裡的每一張表都找出來，變成表格軟體打得開的一行一行。
- [圖片轉 PDF](https://abox.tools/zh-TW/images-to-pdf/): 把你的圖片裝進一個文件。

## 常見問題

### 我的 PDF 會傳到什麼地方去嗎？

不會。讀取、重新壓縮、寫出，全由你自己的瀏覽器在你自己的硬體上完成。這個工具沒有伺服器那一半，頁面的 `Content-Security-Policy` 把它可能聯的地址全列了出來，沒有一個是本站的。連可選的聯網功能都沒有。

### 我的 PDF 能小多少？

完全取決於裡面裝的是什麼，所以工具在動手之前先量一遍、擺給你看。掃描件幾乎全是照片，通常能小 60% 到 90%。合同、論文這類是文字、向量圖形和內嵌字型，做它的軟體早就壓過一輪了，這種一般只能省下百分之幾，來源是重新打包檔案、丟掉已經沒人引用的東西。哪個工具連你的檔案都沒看就承諾一個固定百分比，那是在猜。

### 壓縮 PDF 會掉畫質嗎？

裡面的圖片要重新編碼，這部分會。別的都不動：文字還是文字，選得中也搜得到，字型整份留著，向量圖形原樣複製過去。工具也不會白白把一張圖弄差。重編之後要是並不比原來小，那就把原來的位元組放回文件裡，一點沒動。

### 這裡的 DPI 是什麼意思，為什麼要問我？

PDF 裡記著每張圖在頁面上畫多大，所以工具能算出它的有效解析度。一張 4000 畫素的掃描圖，鋪在八英寸寬的紙上，等於每英寸 500 個畫素。螢幕根本用不上這麼多，紙上也用不上多少，所以超過你選定那一檔的畫素被最先扔掉，它們換來的畫質誰也看不見。正因為量過這一下，一個放得很小的 logo 才不會跟整頁掃描檔被同等對待。

### 帶密碼的 PDF 能開啟嗎？

不能，這是故意的。加密的文件會被拒收並說明原因，哪怕密碼是空的也一樣，而很多掃描器和影印機就是這麼存的。給檔案解保護跟給檔案瘦身是兩碼事，一聲不吭就辦了，等於替你做了你沒要求的事。

### 有壓不動的 PDF 嗎？

有些內嵌圖片壓不動。JPEG 2000、JBIG2 和傳真編碼（CCITT）這幾種，任何瀏覽器都沒有解碼器，所以原樣放行，並在結果裡註明。後兩種本來就是雙色編碼，一般已經接近最小了。CMYK 圖片也不動，重編有可能讓印出來的顏色偏掉。凡是工具跳過的，結果裡都會點名，並說明原因。

### 壓完的檔案還能到處開啟嗎？

能。輸出按 PDF 1.5 寫，2003 年之後出的閱讀器都認。而且工具在你自己的機器上驗一遍：把成品重新開啟，把頁數點一遍，再交給你。表單、連結、書籤、無障礙結構和內嵌附件都帶過去，留下不要的只有文件裡已經沒人引用的那些東西。

### 免費嗎？要註冊嗎？

免費，沒有帳號，不用登入，沒有試用期。檔案大小的上限只取決於你這臺機器的記憶體。本站帶廣告，經費就是這麼來的，廣告拿不到關於你文件的任何資訊。

### 斷網能用嗎？

能。頁面開一次之後斷網，它照常運作。這也是證明「什麼都沒上傳」最省事的辦法。一個把文件送出去壓縮的工具，拔線那一刻就停了。

## 這條隱私承諾怎麼核實

- **你的文件沒地方可去。** Content-Security-Policy 把這個頁面允許聯的地址全列了出來，沒有一個是本站的。這個工具沒往那份名單上添任何東西，因為它自己就沒有聯網功能，連可選的都沒有。這裡沒有能收檔案的介面，程式碼裡也沒有一行會把檔案發出去，就算真有那麼個介面也一樣。
- **整套格式的處理都在這個儲存庫裡。** 一個 PDF 說白了就是一串物件，外加一張記著每個物件從哪裡開始的表。`src/objects.js` 讀這套語法，`src/reader.js` 跟著那張表走，`src/writer.js` 寫出一份新的，三個檔案誰都沒有引入能發請求的東西。沒有庫要去外面取，也沒有哪一步是在伺服器上渲染的。
- **加密的檔案直接擋下來，不去開啟它。** 帶密碼的 PDF 一律拒收，包括掃描器常留的那種空密碼，技術上明明能開啟。給文件解保護跟給文件瘦身是兩碼事，一聲不吭就替你辦了，這種工具才叫嚇人。
- **它是往外拿東西，不是往裡塞東西。** 寫出來的檔案裡沒有建立日期，沒有產生器署名，也沒有做它那個工具的名字。勾上那個選項，XMP 資料包和排版軟體留下的私有塊也一併去掉。EXIF 那個工具講的是同一個道理，只不過換了一種容器。
- **Google 載入了什麼，又拿不到什麼。** 廣告指令碼和統計指令碼來自 Google。關於你文件的資訊，一條都沒給它們，檔案不給，頁面不給，檔名、大小、頁數也不給。讀 PDF、解碼、寫 PDF 的每一行程式碼都從本站發出，也都擺在儲存庫裡。
- **捐助按鈕載入了什麼，又拿不到什麼。** 頁頭那個「Buy me a coffee」按鈕，由 cdnjs.buymeacoffee.com 的指令碼畫出來，字型取自 Google Fonts。它就是個連結，僅此而已，不上報訪問，也拿不到關於你或者你文件的任何東西。你不點它，什麼都不會發生；點了，跳過去的是別人的網站。
- **斷網照樣能用。** 斷開網路，這個頁面上的一切照常工作。這是最省事的一條證明。一個把文件送出去壓縮的工具，這時候就該停了。

**你可以自己核對。**上面這些不用你信。這個頁面是儲存庫裡的模板和配置產生出來的，構建指令碼你能讀，也能自己跑一遍，跑出來的結果就提交在 `dist` 分支上。拿實際發給你的內容，跟你自己從原始碼構建出來的結果對一遍就知道了： https://github.com/A-Box-of-Tools/website

最值得先讀的幾個檔案：`config/site.toml` 裡是 Content-Security-Policy，讀和寫的全部過程在 `src/reader.js` 和 `src/writer.js` 裡，這兩個檔案都夠不著網路。
